2015-04-25 37 views
0

我想我發現了一個錯誤,但我不是100%確定它是否是一個,或者我做錯了什麼。我設立的時區是這樣的:Rails 4.2不更新日期時間字段

inside application.rb

... 
config.i18n.default_locale = :en config.time_zone = 'Melbourne' 
config.active_record.default_timezone = 'Melbourne' 
... 

當我更新與時間戳列(created_atupdated_at)的模型不更新它們。問題是由這條線config.active_record.default_timezone = 'Melbourne'(當我刪除它,它工作正常)造成的。查詢似乎很好,但是當您重新加載模型時,時間戳爲零。我認爲這個問題出現在所有的日期時間列中,並且你使用哪個數據庫並不重要(我設法在postgres和sqlite中重現它)。

這是我期望的東西,因爲我忘了配置一些東西或者它是一個錯誤?

+0

文檔說'active_record.default_timezone'應該是':local'或':utc',而不是時區名稱。這是選擇數據庫中記錄的內容。 'config.time_zone'設置決定了用戶界面的內容。 – Gene

回答

1

config.active_record.default_timezone接受只有兩個值:

  • :local
  • :utc

你可以做的是設置:

config.time_zone = 'Melbourne' 

然後

config.active_record.default_timezone = :local 

會做的伎倆。