我们知道如果我们有数据库列created_at
和updated_at
。
然后Rails会在我们创建和更新模型对象时自动设置这些值。在我的情况下,这些工作正常。
但是几天前它停止工作,即使我没有做出重大改变。我有这两个列,但导轨现在不会自动更新。
这是我的迁移文件。
class CreateUsers < ActiveRecord::Migration
def change
create_table(:users) do |t|
t.string :name, :null => false, :default => ""
t.timestamps
end
add_index :users, :name, :unique => true
end
end
我的基本记录已经设置为true
所以它应该正常工作。
pry(main)> ActiveRecord::Base.record_timestamps
=> true
但在这两种情况下,它都给了我created_at: nil
。
即使这个模型timestamps
也是true
,在项目中似乎都很好。
pry(main)> User.record_timestamps
=> true
我也尝试将其设为false,然后将其更改为true
pry(main)> ActiveRecord::Base.record_timestamps = false
=> false
pry(main)> User.create(:name => "Jeff")
=> #<User id: 11, name: "Name", created_at: nil, updated_at: nil>
然后将其更改为true
。
pry(main)> ActiveRecord::Base.record_timestamps = true
=> true
pry(main)> User.create(:name => "Jeff")
=> #<User id: 11, name: "Name", created_at: nil, updated_at: nil>
对于我这两种情况的结果是一样的。
导致此问题的原因以及如何通过rails自动更新这些created_at
和updated_at
。
版本:
Rails: 4.1.1