基本的Ruby时间操作不起作用

时间:2012-08-05 08:33:45

标签: ruby irb

我一直试图在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

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

感谢。

1 个答案:

答案 0 :(得分:7)

这些方法在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包含时间特定功能,包括此功能。