2011-10-21 19 views
2

私は同じモデルのレコードを2つ持っており、これらのレコードのデータの一部を同期して保持したい。2つのモデルレコードを同期させておく - コールバック無限ループ

私は、他のレコードの更新をトリガするafter_saveコールバック(またはおそらくオブザーバ)を実行しようとしていましたが、他のレコードがコールバックを引き起こすため、保存の無限ループを引き起こす恐れがあります。

私はセーブ時にコールバックをバイパスすることができますが、これらのアプローチはハッキリで、レール2とレール3の間で一貫していないようです(2,3ヶ月でレール3に移動しています)。

もっと良い選択肢はありますか?

答えて

0

あなたがattr_accessor作成することができます。その

よう

attr_accessor :dont_run_callback 

after_save :my_callback 

def my_callback 
    MyModel.find(1).update_attributes(..., :dont_run_callback => true) unless dont_run_callback 
end 

何かを

関連する問題