Active Support 3.0.3をインストールし、Rails 3.0.3 with Ruby 1.8.7。
1.week.ago
を使用しようとすると、
NoMethodError: undefined method 'week' for 1:Fixnum
from (irb):2
他のコア拡張は機能しているようです。友人のコンピューター(同じインストール仕様とレガシーバージョンが彼のコンピューターにある)で試してみたところ、同じ結果が得られました。
何が得られますか?
これらはすべてIRBにあります。
Railsはこれを自動的に処理するはずなので、Rails以外のスクリプトにActive Supportを追加しようとしていると仮定します。
「 コア拡張機能のロード方法 」をお読みください。
Active Supportのメソッドは、Rails 3の小さなグループに分割されたため、単純なrequire 'activesupport'
で不要なものを大量にロードすることはありません。 require 'active_support/core_ext/object/blank'
粒度を気にしない場合は、より大きなチャンクをロードすることを選択できます。 1つの大きなグループですべてを使用する場合...
1.9.2の場合:
rvm 1.9.2
irb -f
irb(main):001:0> require 'active_support/all'
=> true
irb(main):002:0> 1.week.ago
=> 2010-11-14 17:56:16 -0700
irb(main):003:0>
1.8.7の場合:
rvm 1.8.7
irb -f
irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'active_support/all'
=> true
irb(main):003:0> 1.week.ago
=> Sun Nov 14 17:54:19 -0700 2010
irb(main):004:0>
既に述べた方法でライブラリを細かく追加できます
require 'active_support/core_ext/some_class/some_file'
あなたができる別のレベルもあります
require 'active_support/core_ext/some_class'
ただし、現時点では、残念ながらTime
、Date
、およびDateTime
には使用できません。
これを回避する方法はrequire 'active_support/time'
は、OPを解決するTime
、Date
、およびDateTime
を提供します。
My Rails patch 、これはactive_support/core_ext/date
およびdate_time
、Rails v4.0.0にしたため、これらを個別に要求できるようになりました。わーい!