我有一个名为的表audits
,其中有一列“更改”以哈希的形式存储数据
我想检索具有以下条件的所有条目:
- auditable_type = 'Expression'
- action = 'destroy'
- changes = { :EXP_SUBMISSION_FK =>'9999992642'}
我首先尝试了以下代码,它什么都没有返回:
@deleted_history = Audit.find(:all, :conditions => ["auditable_type =? AND action = ? AND changes = ?",'Expression', 'destroy' , { :EXP_SUBMISSION_FK =>'9999992642'} ])
然后我尝试了以下代码,该代码使用 和 检索“审计”表中的所有auditable_type = 'Expression'
条目action = 'destroy'
。
然后,我遍历结果集并丢弃 EXP_SUBMISSION_FK 不等于 9999992642 的所有条目。下面的代码返回 5 个条目/记录
@deleted_history = Audit.find(:all, :conditions => ["auditable_type =? AND action = ?",'Expression', 'destroy' ])
@deleted_history.each do |test|
if test.changes['EXP_SUBMISSION_FK'] != 9999992642
@deleted_history = @deleted_history.reject { test }
end
end
我想知道第一个代码示例哪里出错了,以及是否有办法以更简单的方式检索具有上述条件的所有条目。
非常感谢你的帮助。