How do I use Active Support core extensions?
我安装了Active Support 3.0.3,使用Ruby 1.8.7安装了Rails 3.0.3。
当我尝试使用
1 2 | NoMethodError: undefined method 'week' for 1:Fixnum from (irb):2 |
其他核心扩展似乎有效。 我在一个朋友的计算机上尝试过(同样的安装规范和旧版本),结果相同。
是什么赋予了?
所有这些都在IRB中。
由于使用Rails应该自动处理,我将假设您正在尝试将Active Support添加到非Rails脚本。
阅读"如何加载核心扩展"。
在Rails 3中,Active Support的方法被分解为较小的组,因此我们最终不会使用简单的
如果您不关心粒度,可以选择加载更大的块。如果你想要一口气喝一口......
对于1.9.2:
1 2 3 4 5 6 7 | rvm 1.9.2 irb -f irb(main):001:0> require 'active_support/all' => true irb(main):002:0> 1.week.ago => 2010-11-14 17:56:16 -0700 irb(main):003:0> |
对于1.8.7:
1 2 3 4 5 6 7 8 9 | rvm 1.8.7 irb -f irb(main):001:0> require 'rubygems' => true irb(main):002:0> require 'active_support/all' => true irb(main):003:0> 1.week.ago => Sun Nov 14 17:54:19 -0700 2010 irb(main):004:0> |
您可以通过已经提到的粒度添加库
1 | require 'active_support/core_ext/some_class/some_file' |
还有另一个级别,你可以
1 | require 'active_support/core_ext/some_class' |
但是,目前,遗憾的是
解决这个问题的方法是
我的Rails补丁添加了
在我的情况下,以下链接工作:
https://bundler.io/blog/2019/01/04/an-update-on-the-bundler-2-release.html
1 2 3 4 5 | $ cat Gemfile.lock | grep -A 1"BUNDLED WITH" BUNDLED WITH 1.17.3 $ gem install bundler -v '1.17.3' |
这是否可以在控制台上运行?这对我有用:
1 2 3 4 5 6 7 8 9 | $ sw_vers ProductName: Mac OS X ProductVersion: 10.6.5 BuildVersion: 10H574 $ rails c Loading development environment (Rails 3.0.3) >> 1.week.ago => Sun, 14 Nov 2010 16:57:18 UTC +00:00 |
你可以:
要求'active_support / core_ext'
或:
要求'active_support / all'