2012-08-05 44 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