Ruby on rails Rails-ActiveRecord Dirty-从更改哈希中获取关联对象
我正在为一个应用程序进行审计跟踪,这样用户就可以看到整个系统中发生了什么变化 我对ActiveRecord Dirty进行了一系列更改,如下所示:Ruby on rails Rails-ActiveRecord Dirty-从更改哈希中获取关联对象,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我正在为一个应用程序进行审计跟踪,这样用户就可以看到整个系统中发生了什么变化 我对ActiveRecord Dirty进行了一系列更改,如下所示: {"ingredient_type_id"=>[nil, 199575006], "name"=>[nil, "asdfg"], "amount"=>[nil, 3.0], "unit"=>[nil, "x"], "notes"=>[nil, "asdf"]} 这非常有效,我可以解析输出所需的内容,并使用这些信息创建数
{"ingredient_type_id"=>[nil, 199575006], "name"=>[nil, "asdfg"], "amount"=>[nil, 3.0], "unit"=>[nil, "x"], "notes"=>[nil, "asdf"]}
这非常有效,我可以解析输出所需的内容,并使用这些信息创建数据库记录
我只有一个问题-如何从中获取关联对象?在这种情况下,成分类型是什么?我实际上想要输出如下内容:
“成分类型已更改为#{IngreditType.find(199575006).name}。”
但我不确定如何在动态的基础上解析该散列来做到这一点。与您建议的我的想法差不多,但您不需要解析散列来进行更改,Dirty提供的远不止这些
if ingredient_type_id_changed?
unless ingredient_type_id.blank?
ingredient_name = IngredientType.find(ingredient_type_id).name
else
ingredient_name = 'blank'
end
end
您甚至可以执行成分类型.name
,但此时不确定active record dirty是否允许您通过关联。如果你测试过(或者其他人知道),请告诉我