require 'date'
now = DateTime.now
sunday = now - now.wday
>> sunday = now - now.wday
=> #<DateTime: 53058180361250947/21600000000,-5/24,2299161>
由于sunday
是DateTime
对象,我应该可以调用其实例方法,例如to_date
或midnight
,这两种方法都列在Rails文档中。
但是,这就是我得到的
>> sunday.to_time
NoMethodError: undefined method `to_time' for #<DateTime: 53058180361250947/21600000000,-5/24,2299161>
from (irb):17
实际上这些实例方法都不适用于它。我正在使用irb模式,我不知道发生了什么。谁能告诉我如何解决这个问题?
答案 0 :(得分:2)
它们不是Ruby方法,它们是Rails方法,特别是在Active Support中。而且,在IRB中,默认情况下不会加载Active Support。
http://api.rubyonrails.org/classes/DateTime.html#method-i-to_time
答案 1 :(得分:0)
将第一行更改为:
require 'active_support/time'
答案 2 :(得分:0)
您没有require
Active Support模块。您可以使用require 'activesupport/all'
加载整个模块,但这在大多数情况下都是过度的。
相反,Active Support允许我们挑选我们想要包含在我们代码中的功能。 “Active Support Core Extensions”会告诉你一切。您可能希望查看以下部分: