モデル "ワン"ActiveRecordモデルの二重保存を避けるには?
class One < ActiveRecord::Base
before_save :do_stuff
private
def do_stuff
two = Two.find(8)
two.field2 = 'Value'
two.save!
end
end
モデル "二" の実行
class Two < ActiveRecord::Base
before_save :do_stuff
private
def do_stuff
one = One.find(7)
one.field2 = 'SomeValue'
one.save!
end
end
:
two = Two.find(1)
two.somefield = 'NewVal'
two.save!
無限ループが開始されます。 before_saveコールバックでお互いに変わらなければならない2つのモデルを実装するのに、ほとんどのルビー・オン・レール方法はありますか?
ここで達成しようとしているのは正確ですか? –
確かにあなたは現在の質問を解決する場合でも、デザインに問題があります。これは次の問題につながります – megas
+1これはデザインの欠如のように見えますが、私はこの種の_cycleで自分自身を何度も見つけましたコールバック参照hell_。 [アドホックコールバックを避ける]可能性を持つのに役立つかもしれない(http://stackoverflow.com/questions/632742/how-can-i-avoid-running-activerecord-callbacks) – fguillen