【发布时间】:2015-04-25 22:14:06
【问题描述】:
我想我发现了一个错误,但我不能 100% 确定它是一个错误还是我做错了什么。我正在设置这样的时区:
inside application.rb
...
config.i18n.default_locale = :en config.time_zone = 'Melbourne'
config.active_record.default_timezone = 'Melbourne'
...
当我更新带有时间戳列(created_at、updated_at)的模型时,它不会更新它们。问题是由这条线config.active_record.default_timezone = 'Melbourne' 引起的(当我删除它时,它工作正常)。查询似乎很好,但是当您重新加载模型时,时间戳为零。我认为问题出现在所有日期时间列中,您使用的数据库无关紧要(我设法在 postgres 和 sqlite 中重现它)。
这是我所期望的,因为我忘记配置某些东西还是一个错误?
【问题讨论】:
-
文档说
active_record.default_timezone应该是:local或:utc,而不是时区名称。这是选择数据库中记录的内容。config.time_zone设置确定 UI 呈现的内容。
标签: ruby-on-rails datetime activerecord