created_at字段有时会变为零

时间:2011-11-30 09:53:00

标签: ruby-on-rails activerecord

我认为created_at始终设置为ActiveRecord创建的记录的时间,但我发现一些记录是使用null created_at创建的。 有没有条件导致这个?

2 个答案:

答案 0 :(得分:1)

这些列created_at,updated_at,created_on,updated_on将由rails自动处理。

但是,有一些注意事项:

  1. 请勿更改attr的值(即created_at 在创建之前应为零,而在更新之前不应更改 )。否则,ActiveRecord将不会使用当前时间更新attr的值。
  2. 检查您的<ClassName>.record_timestamps是否设置为true。
  3. 另外,我建议你为这些列添加非空约束:

    change_column :<table_name>, :created_at, :datetime, :null => false
    

    这样您就可以确保此列始终具有非空值。

答案 1 :(得分:1)

您是否在模型上使用attr_accessibleattr_protected

因为没有这些基本保护,任何更新请求都可能设置这些未经验证的&amp;不受保护的属性。

Mass-assignment security