如何确定模型/嵌套模型中的任何字段是否更改?

是否有一些快速的方法来查明是否任何模型的字段或它的嵌套模型(又名关联)的任何领域改变?

要查看一个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? 在他们每个人个别。