在我的數據庫中,我有表'audits',其中包含一個名爲'changes'的字段,它以散列形式存儲數據。找到:散列的所有條件
我想檢索符合以下條件的所有審計:
- 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',它存儲散列格式在'audits'表中的所有變化。
****
感謝您的建議。我正在使用'acts_as_audited',它將散列格式中的所有更改存儲在'audits'表中。 – Kim 2012-08-15 15:14:55
在這種情況下,我想我需要檢索記錄並使用ruby執行搜索 – Kim 2012-08-15 15:15:41
這似乎是最簡單的解決方案。另一種方法就是像Vladson建議的那樣做,並試圖進行一些複雜的全文搜索,但由於我們正在處理實際數據而不僅僅是文本,它會讓我偏執。 – jbarket 2012-08-15 15:20:36