要求 active_support/time_with_zone 后 Time:Class 的未定义方法 `zone`
undefined method `zone` for Time:Class after requiring active_support/time_with_zone
我正在使用 Ruby 2.2.1 并安装了 active_support 4.2,所以我想使用
Time.zone.parse('2007-02-10 15:30:45')
如此处所述:http://api.rubyonrails.org/classes/ActiveSupport/TimeWithZone.html
但即使在要求 active_support
和 active_support/time_with_zone
之后,我似乎 Time.zone
仍然不起作用。观察:
2.2.1 :002 > require "active_support"
=> true
2.2.1 :003 > Time.zone
NoMethodError: undefined method `zone' for Time:Class
2.2.1 :004 > require "active_support/time_with_zone"
=> true
2.2.1 :005 > Time.zone
NoMethodError: undefined method `zone' for Time:Class
怎么回事?
尝试
require 'active_support/all'
而不是
require "active_support"
zone
class Time
class 的方法实际上在 active_support/core_ext/time/zones
中。如果你真的想使用 Time.zone
,你可以要求 class,但更好的方法可能需要 active_support/all
建议的解决方案
require "active_support/all"
如果您想查看 active_support 堡垒的源代码,请查看 github repo
active_support/time_with_zone
提供了ActiveSupport::TimeWithZone
class,但没有扩展核心Time
class.
您可以要求 active_support/time
而不是:
require 'active_support'
require 'active_support/time'
Time.zone = 'Eastern Time (US & Canada)' #=> "Eastern Time (US & Canada)"
Time.zone.parse('2007-02-10 15:30:45') #=> Sat, 10 Feb 2007 15:30:45 EST -05:00
我正在使用 Ruby 2.2.1 并安装了 active_support 4.2,所以我想使用
Time.zone.parse('2007-02-10 15:30:45')
如此处所述:http://api.rubyonrails.org/classes/ActiveSupport/TimeWithZone.html
但即使在要求 active_support
和 active_support/time_with_zone
之后,我似乎 Time.zone
仍然不起作用。观察:
2.2.1 :002 > require "active_support"
=> true
2.2.1 :003 > Time.zone
NoMethodError: undefined method `zone' for Time:Class
2.2.1 :004 > require "active_support/time_with_zone"
=> true
2.2.1 :005 > Time.zone
NoMethodError: undefined method `zone' for Time:Class
怎么回事?
尝试
require 'active_support/all'
而不是
require "active_support"
zone
class Time
class 的方法实际上在 active_support/core_ext/time/zones
中。如果你真的想使用 Time.zone
,你可以要求 class,但更好的方法可能需要 active_support/all
建议的解决方案
require "active_support/all"
如果您想查看 active_support 堡垒的源代码,请查看 github repo
active_support/time_with_zone
提供了ActiveSupport::TimeWithZone
class,但没有扩展核心Time
class.
您可以要求 active_support/time
而不是:
require 'active_support'
require 'active_support/time'
Time.zone = 'Eastern Time (US & Canada)' #=> "Eastern Time (US & Canada)"
Time.zone.parse('2007-02-10 15:30:45') #=> Sat, 10 Feb 2007 15:30:45 EST -05:00