有没有一些快速的方法来找出一个模型的任何字段或它的嵌套模型的任何字段(也就是关联)已更改?
发布于 2011-04-11 08:13:45
要查看ActiveRecord对象是否已更改,可以调用:
instance.changed?要查看特定属性是否已更改,可以执行以下操作:
instance.attr_changed?其中attr是要检查的属性。
要检查嵌套模型是否发生更改,只需执行以下操作:
instance.nested_model.changed?发布于 2016-02-26 18:28:53
我知道这是一个老问题,但最近遇到了同样的情况。
即使在保存对象之后,也可以使用previous_changes方法获取嵌套模型的所有更改。
parent_model_object.nested_model_name.previous_changes这将列出嵌套模型中的所有更改以及旧值和新值。
发布于 2018-12-08 10:18:29
在5.1 +版本中,下面的代码对我来说很有效:
如果您的对象已更改,saved_changes?会让您知道:
my_object.saved_changes?
=> truesaved_changes会让你知道哪些字段发生了变化,每个字段的前值和后值:
my_object.saved_changes
=> {"first_name"=>['Jim', 'Jimmy'], "updated_at"=>[Thu, 06 Dec 2018 18:45:00 UTC +00:00, Thu, 06 Dec 2018 18:52:44 UTC +00:00]}https://stackoverflow.com/questions/5615594
复制相似问题