将应用程序从Ruby 1.8.6 / Rails 2.3.5升级到Ruby 1.8.7 / Rails3.0.11。
在application.rb中,config语句已经(从environment.rb)移动到:
module AppName
class Application < Rails::Application
...
end
end
阻止,包括声明:
config.time_zone = 'Eastern Time (US & Canada)'
在旧的environment.rb文件中,还有一些代码用于初始化一些常量,我已将其移至application.rb中。我已经尝试过模块/类块之后(就像之前一样)并在其中,但是以下语句:
Time.zone.parse(external_config_date)
产生了这个错误:
config / application.rb:49:nil的未定义方法`parse':NilClass(NoMethodError)
我对此感到有些困惑(正如Rails日期/时间经常发生的那样: - /);看起来Time.zone似乎是一种可以接受默认时区的方法,但我也看到它说'zone'是Time的实例方法,而不是类方法。
对此的任何见解(或关于如何进一步排除故障的想法)都非常感谢!
答案 0 :(得分:0)
看起来将额外的配置代码从environment.rb移动到application.rb是我的错误。 'time.zone.parse'似乎是一个Rails附加组件,它还没有在application.rb中启用。在行
之后将配置代码移回environment.rb的底部AppName::Application.initialize!
让它发挥作用。