2012-12-07 18 views
0

正在將應用程序從Ruby 1.8.6/Rails 2.3.5升級到Ruby 1.8.7/Rails3.0.11。將應用程序中的config.time_zone設置爲Rails 3後,Time.zone爲零

在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: undefined method `parse' for nil:NilClass (NoMethodError)

我有點(這經常發生在Rails日期/時間: - /);大多數情況下,它看起來像Time.zone是訪問默認時區的可接受方式,但我也看到它說'zone'是時間的實例方法而不是類方法。

任何有關這方面的見解(或關於如何排除故障的想法)非常感謝!

回答

0

它看起來像從environment.rb移動額外的配置代碼到application.rb是我的錯誤在這裏。 'Time.zone.parse'似乎是一個Rails附加組件,但它尚未在application.rb中啓用。將配置代碼移回到environment.rb的底部,在線

AppName::Application.initialize! 

讓它工作。

相關問題