ActiveRecord :: Base.record_timestamps无法正常工作

时间:2017-02-24 05:38:46

标签: ruby-on-rails ruby activerecord

我们知道如果我们有数据库列created_atupdated_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_atupdated_at

版本:

Rails: 4.1.1

0 个答案:

没有答案