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

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

Change 是一种积极的支持方法,因此要定义它,您首先必须要求该库:

>> 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 回答