1
require 'date'
now = DateTime.now
sunday = now - now.wday

>> sunday = now - now.wday
=> #<DateTime: 53058180361250947/21600000000,-5/24,2299161>

sundayはオブジェクトなので、またはDateTimeなどのインスタンス メソッドを呼び出すことができるはずです。どちらも Rails のドキュメントに記載されています。to_datemidnight

しかし、これは私が得るものです

>> sunday.to_time
NoMethodError: undefined method `to_time' for #<DateTime: 53058180361250947/21600000000,-5/24,2299161>
        from (irb):17

実際には、これらのインスタンス メソッドはどれも機能しません。irb モードを使用していますが、何が起こっているのかわかりません。この問題を解決する方法を教えてもらえますか?

4

3 に答える 3

2

これらは Ruby メソッドではなく、Rails メソッドであり、特に Active Support ではそうです。また、IRB では、Active Support はデフォルトではロードされません。

http://api.rubyonrails.org/classes/DateTime.html#method-i-to_time

于 2013-04-18T17:53:30.713 に答える
0

最初の行を次のように変更します。

require 'active_support/time'
于 2013-04-18T18:02:12.050 に答える
0

requireActive Support モジュールを使用していません。を使用してモジュール全体をロードできますが、require 'activesupport/all'ほとんどの場合、それはやり過ぎです。

代わりに、Active Support を使用すると、コードに含めたい機能を厳選することができます。「Active Support Core Extensions」がすべてを教えてくれます。おそらく、次のセクションを参照してください。

于 2013-04-18T18:32:14.010 に答える