モデルのhas_manyとhas_many:throughモデルの関係があります。例えば、私のUserクラスに私が持っている:レールの変更を検出するhas_many:throughの関係
にhas_many:を通じて言語、::これらは「User.changes」関数を使用して追加または削除されたとき、私は希望何profile_languages
を検出することができることですUser.language_ids =関数で呼び出されたときに変更された属性の配列を返します。
他に誰かがこれをやろうとしましたか、これを経験しましたか? http://api.rubyonrails.org/classes/ActiveModel/Dirty.html
編集:ActiveModel上
情報は、機能変更要求として、ここで私がやっているものです。ユーザーの属性が割り当てられた後、それを保存する前に
、私は外部のログに行われたすべての変更をログに記録するためには、.CHANGESから返された値のすべてで探しています。私が合格したときに、しかし
:
は、だから私はu.name = "新しい名前を" 呼び出す場合
はその後戻っ{[ '古い名前'、 '新しい名前'] name}をu.changesユーザがそのような
u.language_ids = [4,5]
などの言語IDの束がそこに作成ProfileLanguageモデルの数であり、u.changesハッシュは空白のままにされます。
私は手動でハッシュのいくつかの並べ替えを作成しますProfileLanguageモデルのいくつかのコールバックを作成しようとしていますが、これは確かに最善の解決策である場合、私は疑問に思って。
は
こんにちは、あなたの質問についてもう少し詳しくお聞かせください。おそらく私たちにあなたがセットアップしているものを見せて、私たちに何かがあることを示してください。 – Noz
コールバックやオブザーバーを調べましたか? – Ari
編集を追加しました。うまくいけばそれは明らかにすることができる –