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 OS:Mac OS X 10.8

なぜこれが起こっているのかについてのアイデアはありますか?モジュール/ライブラリを要求/含める必要はないと確信しています。どんな助けでもいただければ幸いです。

ありがとう。

4

1 に答える 1

8

これらのメソッドはactivesupportgemで定義されています。active_support/allを含める必要があります

2つの方法があります:

➜  ~  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 に答える