如何确定模型/嵌套模型中的任何字段是否更改?
是否有一些快速的方法来查明是否任何模型的字段或它的嵌套模型(又名关联)的任何领域改变?
要查看一个ActiveRecord对象是否已经改变,你可以调用:
instance.changed?
要查看某个特定属性是否已更改,您可以执行以下操作:
instance.attr_changed?
attr是你想要检查的属性。
要检查嵌套模型是否更改,可以执行:
instance.nested_model.changed?
我知道这是个老问题,但最近遇到了同样的情况。
即使在保存对象之后,也可以使用previous_changes
方法获取嵌套模型的所有更改。
parent_model_object.nested_model_name.previous_changes
这将列出嵌套模型中的所有更改以及新旧值。
您可以通过调用来确定对象是否已更改,但尚未保存。
my_object.changed?
您也可以确定单个属性是否已经改变(比如说你有一个first_name
属性):
my_object.first_name_changed?
至于嵌套模型去,我认为你不得不打电话changed?
在他们每个人个别。