私のデータベースには、データをハッシュ形式で保存する「変更」というフィールドを含む「監査」テーブルがあります。
次の条件ですべての監査を取得したいと思います。
- auditable_type = 'Expression'
- action = 'destroy'
- changes = :EXP_SUBMISSION_FK =>'9999992642' #note that this field stores hash values
@expression_history_deleted = Audit.find(:all, :conditions => ["auditable_type =? AND action = ? AND changes = ?",'Expression', 'destroy' , { :EXP_SUBMISSION_FK =>'9999992642'} ])
上記のコードは何も返しません。
条件の「変更」を削除して次のようにすると、エントリのリストが得られます。
@expression_history_deleted = Audit.find(:all, :conditions => ["auditable_type =? AND action = ?",'Expression', 'destroy'])
<% @expression_history_deleted.each do |test| %>
<%= test.changes['EXP_SUBMISSION_FK'] %> ---displays the value
<% end %>
私の質問は、検索を実行してハッシュ値の条件を設定する方法です。
****
「監査」テーブルにすべての変更をハッシュ形式で保存する「acts_as_audited」を使用しています。
****