未定义的方法`更改'IRB控制台中的DateTime

时间:2012-12-11 10:28:58

标签: ruby-on-rails ruby jruby

更改(: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

中抛出“未定义的方法`更改'”
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>

有任何建议如何使其发挥作用?

提前致谢。

2 个答案:

答案 0 :(得分:10)

要获取与日期时间相关的功能,请require 'active_support/time'

答案 1 :(得分:0)

Change is an active support method,所以要定义它,首先必须要求库:

>> 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
相关问题