模型 “一”如何避免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!
无限循环将开始。什么是ruby-on-rails最实用的方式来实现两个模型,它们必须在before_save回调时互相改变?
你究竟想在这里实现什么? – 2012-03-14 14:23:30
即使你有设计上的问题,即使你会解决当前的问题,这也会导致你到下一个问题 – megas 2012-03-14 14:44:37
+1,即使这看起来像设计上的缺陷我已经在这种类型的_cycle中多次发现我的自己回调引用hell_。可以帮助有可能[避免回调adhoc](http://stackoverflow.com/questions/632742/how-can-i-avoid-running-activerecord-callbacks) – fguillen 2012-03-14 14:57:54