1

change(:hour => 1) Railsコンソールで正常に動作

irb(main):004:0> dt = DateTime.now
=> Mon, 10 Dec 2012 15:52:01 -0800
irb(main):005:0> _.change(:hour => 1)
=> Mon, 10 Dec 2012 01:00:00 -0800
irb(main):006:0>
irb(main):007:0> dt.class
=> DateTime
irb(main):008:0>

しかし、irb で「未定義のメソッド `change'」をスローします

irb(main):008:0> require 'active_record'
=> true
irb(main):009:0> dt = DateTime.now
=> #<DateTime: 2012-12-10T15:55:14-08:00 (10611097185737/4320000,-1/3,2299161)>
irb(main):010:0> dt.class
=> DateTime
irb(main):011:0> dt.change(:hour => 1)
NoMethodError: undefined method `change' for #<DateTime:0x53e20a9a>
        from (irb):11:in `evaluate'
        from org/jruby/RubyKernel.java:1070:in `eval'
        from org/jruby/RubyKernel.java:1395:in `loop'
        from org/jruby/RubyKernel.java:1178:in `catch'
        from org/jruby/RubyKernel.java:1178:in `catch'
        from C:\PF\jruby-1.7.0.preview2\bin\irb:13:in `(root)'
irb(main):012:0>

それを機能させる方法はありますか?

前もって感謝します。

4

2 に答える 2

11

日時に関連する機能を取得するには、require 'active_support/time'

于 2012-12-11T10:41:27.133 に答える
0

変更は積極的なサポート方法であるため、変更を定義するには、まずライブラリを要求する必要があります。

>> require 'active_support/all'
=> true
>> dt = DateTime.now
=> Tue, 11 Dec 2012 11:34:54 +0100
>> dt.change(:hour => 1)
=> Tue, 11 Dec 2012 01:00:00 +0100
于 2012-12-11T10:35:44.460 に答える