我已经安装了Active Support 3.0.3,并且已将Rails 3.0.3与Ruby 1.8.7一起安装。
当我尝试使用时,1.week.ago
我得到
NoMethodError: undefined method 'week' for 1:Fixnum
from (irb):2
其他核心扩展似乎也有效。我在朋友的计算机上尝试过(相同的安装规格和旧版本),结果相同。
是什么赋予了?
所有这些都在IRB中。
我已经安装了Active Support 3.0.3,并且已将Rails 3.0.3与Ruby 1.8.7一起安装。
当我尝试使用时,1.week.ago
我得到
NoMethodError: undefined method 'week' for 1:Fixnum
from (irb):2
其他核心扩展似乎也有效。我在朋友的计算机上尝试过(相同的安装规格和旧版本),结果相同。
是什么赋予了?
所有这些都在IRB中。
Answers:
因为使用Rails应该可以自动处理此问题,所以我假设您正在尝试将Active Support添加到非Rails脚本中。
阅读“ 如何加载核心扩展 ”。
Active Support的方法在Rails 3中分成了较小的组,因此,我们最终不会通过简单的加载很多不需要的东西require 'activesupport'
。现在我们要做的事情是
require 'active_support/core_ext/object/blank'
如果您不关心粒度,则可以选择加载更大的块。如果您想一口气使用所有东西...
对于1.9.2:
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:
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>
irbtools
。它包括对IRB的各种不错的调整。并且,如果您需要临时禁用它们,请致电irb -f
,它将不会加载它们。
您可以通过已经提到的详细添加库
require 'active_support/core_ext/some_class/some_file'
还有一个更高的级别可以
require 'active_support/core_ext/some_class'
但是,在目前,这是不幸的是没有可用的Time
,Date
和DateTime
。
解决这个问题的一种方法是为require 'active_support/time'
您提供Time
,Date
并且DateTime
可以解决OP所要求的而又不需要一切。
我的Rails补丁(添加了active_support/core_ext/date
和date_time
)将其添加到 Rails v4.0.0中,因此现在您可以单独要求这些了。好极了!
就我而言,以下链接有效:
https://bundler.io/blog/2019/01/04/an-update-on-the-bundler-2-release.html
$ cat Gemfile.lock | grep -A 1 "BUNDLED WITH"
BUNDLED WITH
1.17.3
$ gem install bundler -v '1.17.3'