对所有子资源执行 before_filter/before_action

execute before_filter/before_action for all subresources

我有一个模型和一个控制器'Parent'。它有一堆 has_many 关系:child人、汽车、食物等,每个人都有一个控制器。

Parent 有一个名为 'dead' 的字段。当 dead: true 时,我希望所有 children 关系在其 #show#index 页面上显示特定消息。

我可以在任何地方放很多 if statements 我想要支票

if self.parent.dead
  <show special message>
end

更简洁的方法是将其放在 before_filter 中。尽管如此,我仍需要为每个 child 控制器执行此操作。所以我想问题是,是否有一种干净的方法来为所有相关记录执行某些操作?我想要一种有点类似于 dependent: :destroy 的行为,只是我实际上并没有删除任何东西,我只想对所有相关记录执行 before_filter

谢谢!

您可以在关注中定义它,并且可以将该关注包含在您想要在其中显示消息的任何子控制器中。