【问题标题】:Rails 4.2 doesn't update datetime fieldsRails 4.2 不更新日期时间字段
【发布时间】: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_atupdated_at)的模型时,它不会更新它们。问题是由这条线config.active_record.default_timezone = 'Melbourne' 引起的(当我删除它时,它工作正常)。查询似乎很好,但是当您重新加载模型时,时间戳为零。我认为问题出现在所有日期时间列中,您使用的数据库无关紧要(我设法在 postgres 和 sqlite 中重现它)。

这是我所期望的,因为我忘记配置某些东西还是一个错误?

【问题讨论】:

  • 文档说active_record.default_timezone 应该是:local:utc,而不是时区名称。这是选择数据库中记录的内容。 config.time_zone 设置确定 UI 呈现的内容。

标签: ruby-on-rails datetime activerecord


【解决方案1】:

config.active_record.default_timezone 只接受两个值:

  • :local
  • :utc

你可以做的是设置:

config.time_zone = 'Melbourne'

然后

config.active_record.default_timezone = :local

会成功的。

【讨论】:

    猜你喜欢
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多