我有一個has_many和has_many的模型:通過模型關係。舉例來說,在我的User類我有:檢測rails中的更改has_many:通過關係
的has_many:語文,通過:profile_languages
我想什麼是能夠檢測到這些時,添加或刪除使用「User.changes」功能,它返回一個用User.language_ids = function調用的屬性數組。
有沒有其他人試圖做到這一點,或有這方面的經驗?在加載ActiveModel
信息功能的變化:http://api.rubyonrails.org/classes/ActiveModel/Dirty.html
編輯:按照要求,這裏是我在做什麼。
在分配用戶屬性並保存之前,我正在查看.changes返回的所有值,以便記錄外部日誌中所做的所有更改。
所以,如果我叫u.name = 「新名稱」
然後u.changes返回{名稱: '老字號', '新名']}
然而,當我通過用戶一堆語言ID,如
u.language_ids = [4,5]
然後有許多創建ProfileLanguage模型,並且u.changes散列留空。
我試圖在ProfileLanguage模型中創建一些回調,手動創建某種散列,但我想知道這是否確實是最好的解決方案。
嗨羅恩,你可以請你更具體一點關於你的問題?也許向我們展示你到目前爲止所做的設置,以便我們有一些事情可以解決。 – Noz
你看過回調或觀察者嗎? – Ari
添加了編輯。希望它可以澄清 –