ruby-on-rails - created_at字段有时变为nil

标签 ruby-on-rails activerecord

我认为created_at始终设置为ActiveRecord在其中创建记录的时间,但是我发现某些记录是使用null created_at创建的。
是否有任何条件导致这种情况?

最佳答案

这些列created_at,updated_at,created_on,updated_on会由rails自动为您处理。

但是,有一些注意事项:

  • 请勿更改attr的值(即,在创建之前created_at 应该为nil,在更新之前不应更改)。否则,ActiveRecord将不会在当前时间更新attr的值。
  • 检查您的<ClassName>.record_timestamps是否设置为true。

  • 另外,我建议您向这些列添加非空约束:
    change_column :<table_name>, :created_at, :datetime, :null => false
    

    这样,您将确保此列始终具有非空值。

    关于ruby-on-rails - created_at字段有时变为nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8323995/

    相关文章:

    ruby-on-rails - factory_girl vs fixtures for development data (Rails)

    特定于 Controller 的 css 文件

    ruby-on-rails - Ruby on Rails 语法 <% 与 <%=

    ruby-on-rails - 超时::错误:Capistrano/Rubber 执行已过期

    ruby-on-rails - 根据另一个属性值验证一个属性的值

    ruby-on-rails - 在 Rails 中使用 Postgres UUID 时破坏了加入记录的创建、保存、更新和销毁

    ruby-on-rails - 为什么我的 Capistrano 失败了?

    ruby-on-rails - 优化多条记录关联查询

    ruby - Postgresql JSON 列作为 HashWithIndifferentAccess

    php - 删除时触发 MySQL 状态更新