2012-08-05 52 views
2

我一直想考出在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>' 

仅供参考... 红宝石版本:1.9.3p258 操作系统:Mac OS X 10.8

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

谢谢。

回答

7

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

有两种方式:

➜ ~ 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 > 

编辑:正如在评论中指出的约尔格,你可以要求active_support/core_ext/integer/time包括时间特定功能,包括这一个。

+0

谢谢,这工作。有没有明确调用require'active_support/all'的方法?我觉得我之前做过... – avk 2012-08-05 08:41:42

+0

Only in irb?您可以在'〜/ .irbrc' – Dogbert 2012-08-05 08:42:10

+0

中添加require语句完美,谢谢! – avk 2012-08-05 08:47:16