对所有子资源执行before_filter / before_action

时间:2019-07-11 16:28:03

标签: ruby-on-rails has-many

我有一个模型和一个控制器“ Parent”。它具有has_many的一堆关系:孩子,汽车,食物等,每个都有一个控制器。

父母有一个叫做“死”的字段。当dead: true时,我希望所有子关系在其#show#index页面上显示特定的消息。

我可以在需要支票的地方放很多if statements

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

一种更干净的方法是将其放在before_filter中。不过,我需要为每个子控制器执行此操作。所以我想问题是,是否有一种干净的方法可以对所有相关记录执行某些操作?我想要某种类似于dependent: :destroy的行为,只是我实际上并没有删除任何内容,我只想对所有相关记录执行before_filter

谢谢!

1 个答案:

答案 0 :(得分:1)

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