3

我一直在尝试在 irb 中测试一些东西,但它无法识别类似的命令

2.weeks.ago

10.hours.ago

我得到的错误如下:

1.9.3p258 :002 > 2.weeks.ago
NoMethodError: undefined method `weeks' for 2:Fixnum
from (irb):2
from /Users/Avneesh/.rvm/rubies/ruby-1.9.3-head/bin/irb:16:in `<main>'

供参考... Ruby 版本:1.9.3p258 操作系统:Mac OS X 10.8

关于为什么会发生这种情况的任何想法?我很确定我不需要/包含任何模块/库。任何帮助,将不胜感激。

谢谢。

4

1 回答 1

8

这些方法在 activesupport gem 中定义。您需要包括 active_support/all

有两种方法:

➜  ~  irb -ractive_support/all
1.9.3-p125 :001 > 2.weeks.ago
 => 2012-07-22 14:06:10 +0530 
1.9.3-p125 :002 > exit


➜  ~  irb
1.9.3-p125 :001 > require 'active_support/all'
 => true 
1.9.3-p125 :002 > 2.weeks.ago
 => 2012-07-22 14:06:22 +0530 
1.9.3-p125 :003 > 

编辑:正如 Jörg 在评论中指出的那样,您可以只要求active_support/core_ext/integer/time包含特定于时间的函数,包括这个。

于 2012-08-05T08:36:57.340 回答