我想在我的数据库中保存EST的时间。我希望rails将其作为存储在DB中的时间读取。我将config / application.rb文件中的设置更改为此
config.time_zone = 'Eastern Time (US & Canada)'
config.active_record.default_timezone = 'Eastern Time (US & Canada)'
现在,当我将条目保存到数据库中时,它们与EST在created_at字段中正确存储。创建第二个字段,这是直接来自postgres:
4453 | 2015-08-26 20:04:07.023224 | mlb | team_scores_first | fg | 0 | 2015-08-24 | {"away":"NYM","home":"PHI"} | 1104 | 1103 | 541220 | {"away":-225.0,"home":185.0}
但是当我通过rails获得记录时,它给了我这个
<Line id: 4453, created_at: nil, league: "mlb", bet_type: "team_scores_first", period: "fg", book: 0, date: "2015-08-24", names: {"away"=>"NYM", "home"=>"PHI"}, away_team_id: 1104, home_team_id: 1103, game_id: 541220, line: {"away"=>-225.0, "home"=>185.0}>
为什么Rails为created_at字段返回nil?需要进行哪些更改才能将created_at字段读取为存储在DB中的日期时间?
答案 0 :(得分:1)
config.active_record.default_timezone确定从数据库中提取日期和时间时是否使用Time.local(如果设置为:local)或Time.utc(如果设置为:utc)。默认值为:utc。
来自http://guides.rubyonrails.org/configuring.html
您不需要在那里设置实际时区,只要您想要本地或utc。
config.active_record.default_timezone = :local