首页 > 解决方案 > 即使没有更改,如何保存 Rails 记录的所有字段

问题描述

当记录保存/加载到数据库/从数据库加载时,我使用 Rails 属性 API 来加密和解密某些字段。现在我需要更改加密完成的方式,并且需要重新保存所有记录,以便数据库中的加密值得到更新。

但是在 Rails 4 中删除 partial_updates 配置后,这似乎真的很难。有没有办法让 Rails 保存字段,即使它们没有改变?

还是我需要编写一个直接更新 SQL 的方法?

标签: ruby-on-rails

解决方案


您需要将它们标记为脏。例如 Post 模型有一个title属性:

post = Post.find(12)
post.title_will_change!
post.save

有关脏属性的更多信息,请参见此处。


推荐阅读