我試圖讓我的所有模型都使用EST時區在同時配置爲EST的DB2數據庫中編寫時間戳。ActiveRecord默認時區無法從數據庫回讀
我已經配置了我的application.rb
配置有以下幾點:
config.time_zone = 'Eastern Time (US & Canada)'
config.active_record.default_timezone = 'Eastern Time (US & Canada)'
當我創建一個新的記錄,並保存到數據庫中的時間戳看起來不錯:
=> #<TZTestModel id: 3500, added_ts: nil, ...>
irb(main):002:0> rec.added_ts = Time.zone.now
=> Fri, 06 Nov 2015 19:03:42 EST -05:00
irb(main):003:0> rec.added_ts
=> Fri, 06 Nov 2015 19:03:42 EST -05:00
irb(main):004:0> rec.save
SQL (91.0ms) INSERT INTO TZTESTMODEL(id, added_ts, ...) VALUES (3500, '2015-11-06 19:06:55.237000', ...)
=> true
我查詢數據庫和我可以看到插入了正確時間戳的記錄。但是,當我嘗試讀取記錄背透的ActiveRecord,時間戳字段是零:
irb(main):008:0> TZTestModel.first
=> #<TZTestModel id: 3500, added_ts: nil, ...>
這隻有當我在application.rb
設置默認的時區發生。如果我不添加配置,則AR默認爲UTC,並且可以根本不寫入和讀取時間戳字段。
請任何建議,非常感謝。