使用什么而不是回调

时间:2015-03-23 19:57:50

标签: ruby callback ruby-on-rails-4.2

我有这样的模型结构:

TestCase has_many :test_case_steps
TestCaseStep  belongs_to :test_case

TestCase具有status属性。

TestCaseStep具有status属性。

用户可以更改TestCaseStep的{​​{1}}。如果所有关联的status对象的状态都已“通过”,我想更改TestCaseStep的{​​{1}}。

用户无法手动更新TestCase的{​​{1}}。

我认为可以使用一些回调,检查所有相关对象的状态,一旦全部为status,就更新TestCase的一个。{1}}。但是使用其他模型所涉及的回调是邪恶的。

请用方向暗示我。可能存在一些 whatcher / 观察者方法或类似的东西。谢谢!

1 个答案:

答案 0 :(得分:1)

rails-observers gem是Rails 3观察者重构为宝石。

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

如果您愿意添加gem,请参阅wisper,这样可以进行简单的发布和订阅。