如果您有数据库列created_at
and updated_at
当您创建和更新模型对象时,Rails 将自动设置这些值。有没有办法在不接触这些列的情况下保存模型?
我正在引入一些旧数据,我想根据(不同名称的)旧数据字段中的相应值设置这些值。我发现当我在模型上设置它们然后保存模型时,Rails 似乎会覆盖传入的值。
当然,我可以以不同的方式命名 Rails 模型列来防止出现这种情况,但在导入数据后,我希望 Rails 执行自动时间戳操作。
在迁移或 rake 任务中(或在新的数据库种子 http://github.com/rails/rails/commit/4932f7b38f72104819022abca0c952ba6f9888cb如果您位于边缘导轨上):
ActiveRecord::Base.record_timestamps = false
begin
run_the_code_that_imports_the_data
ensure
ActiveRecord::Base.record_timestamps = true # don't forget to enable it again!
end
您可以安全地设置created_at
and updated_at
手动,Rails 不会抱怨。
笔记:
这也适用于个别模型,例如User.record_timestamps = false
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)