【发布时间】:2018-03-21 18:44:29
【问题描述】:
我有一个包含许多操作的控制器(比如action1、action2、action3 和 action4)。我有一个 before_action 过滤器,我想排除一些操作,接近:
before_action :filter_thing, except: [:action3, :action4]
但是,我希望有条件地为 action2 调用过滤器。
我尝试简单地将它分成两个before_actions,但第二个似乎覆盖了第一个;在以下代码中,filter_thing 未被调用为 action1:
before_action :filter_thing, except: [:action3, :action4]
before_action :filter_thing, only: [:action2], unless: :should_not_filter?
我想也许我可以使用条件skip_before_action:
skip_before_action :filter_thing, only: :action2, if: :should_not_filter?
但它似乎忽略了if: 参数。
有没有办法有条件地将过滤器仅应用于某些操作?
【问题讨论】:
标签: ruby-on-rails before-filter