2014-03-24 42 views
0

我正在爲應用程序進行排序的審計跟蹤,以便用戶可以查看整個系統中正在進行的更改。Rails - ActiveRecord Dirty - 從更改哈希獲取關聯對象

我有ActiveRecord的髒改變的哈希值,像如下:

{"ingredient_type_id"=>[nil, 199575006], "name"=>[nil, "asdfg"], "amount"=>[nil, 3.0], "unit"=>[nil, "x"], "notes"=>[nil, "asdf"]} 

這個偉大的工程,我可以分析自己需要的輸出,並與信息建立數據庫記錄。

我只有一個問題 - 我怎樣才能從這個關聯的對象?在這種情況下,成分類型?我實際上想要輸出如下內容:

「成分類型已更改爲#{IngredientType.find(199575006).name}」。

但我不確定我如何在動態的基礎上解析該哈希來做到這一點。

回答

1

差不多你建議我想到過,但你並不需要解析的哈希值的變化方式,骯髒的給你比

if ingredient_type_id_changed? 
    unless ingredient_type_id.blank? 
    ingredient_name = IngredientType.find(ingredient_type_id).name   
    else 
    ingredient_name = 'blank'   
    end 
end 

更多你甚至可能能夠做ingredient_type.name,不確定在那個時候,如果活躍的記錄髒會讓你通過關聯。如果你測試它(或者其他人知道)讓我知道