0

致力于将应用程序从 Ruby 1.8.6/Rails 2.3.5 升级到 Ruby 1.8.7/Rails3.0.11。

在 application.rb 中,配置语句已被(从 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:NilClass (NoMethodError) 的未定义方法“解析”

我对此有点困惑(Rails 日期/时间经常发生这种情况:-/);大多数情况下,看起来 Time.zone 是访问默认时区的一种可接受的方式,但我也看到它说“zone”是 Time 的实例方法而不是类方法。

对此的任何见解(或有关如何进一步排除故障的想法)非常感谢!

4

1 回答 1

0

看起来将额外的配置代码从 environment.rb 移动到 application.rb 是我的错误。'Time.zone.parse' 似乎是一个 Rails 插件,它还没有在 application.rb 中启用。将配置代码移回 environment.rb 的底部,在该行之后

AppName::Application.initialize!

让它工作。

于 2012-12-10T22:39:49.237 回答