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
最初のコード例のどこで問題が発生したか、および前述の条件ですべてのエントリをより簡単な方法で取得する方法があるかどうかを知りたいです。
どうもありがとうございました。