Ruby on rails 保持2个模型记录同步-回调无限循环
我有两条相同型号的记录,我想保持这些记录上的一些数据同步 我本来打算在保存后进行回调,或者使用observer来触发更新另一条记录,但我担心这会导致无限次的保存循环,因为另一条记录会导致回调 我读到你可以绕过save上的回调,但是这些方法看起来很粗糙,Rails2和Rails3之间不一致。我们将在几个月后迁移到Rails3Ruby on rails 保持2个模型记录同步-回调无限循环,ruby-on-rails,observer-pattern,Ruby On Rails,Observer Pattern,我有两条相同型号的记录,我想保持这些记录上的一些数据同步 我本来打算在保存后进行回调,或者使用observer来触发更新另一条记录,但我担心这会导致无限次的保存循环,因为另一条记录会导致回调 我读到你可以绕过save上的回调,但是这些方法看起来很粗糙,Rails2和Rails3之间不一致。我们将在几个月后迁移到Rails3 有更好的选择吗 您可以创建属性访问器: attr_accessor :dont_run_callback after_save :my_callback def my_c
有更好的选择吗 您可以创建属性访问器:
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
类似这样的内容您可以创建属性访问器:
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
类似于此您可以使用update\u columns方法根据第一条记录的更新更新第二条记录,反之亦然。您可以使用update\u columns方法根据第一条记录的更新更新第二条记录,反之亦然