使用什么代替回调

what to use instead of callback

我有这样的模型结构:

TestCase has_many :test_case_steps
TestCaseStep  belongs_to :test_case

TestCase 具有 status 属性。

TestCaseStep 具有 status 属性。

用户可以更改 TestCaseStepstatus。如果所有关联的 TestCaseStep 对象都具有状态 'passed',我想更改 TestCasestatus

用户无法手动更新 TestCasestatus

我认为可以使用一些回调,检查所有关联对象的状态,一旦全部为 passed,更新 TestCase 的状态。但是在涉及另一个模型的地方使用回调是邪恶的。

请指点方向。可能存在一些 whatcher/observer 方法或类似的方法。谢谢!

rails-observersgem是Rails3个观察者重构为gem.

另请参阅 ActiveSupport::Concern,以混合您要进行更新的代码。

如果您愿意添加 gem,请参阅 wisper,它可以实现简单的发布和订阅。