从 before_action 中排除控制器
Posted
技术标签:
【中文标题】从 before_action 中排除控制器【英文标题】:Exclude a controller from before_action 【发布时间】:2016-04-27 00:48:45 【问题描述】:我正在使用before_action
过滤器调用authenticate
,如果用户无权访问请求的页面,该方法会将用户重定向回其主页。
我想从这一步中排除一个页面,仅用于测试目的。
到目前为止,我所看到的是,我可以使用 except
来排除某些控制器操作,使其不受 before_action
过滤器的影响,例如:
before_action :authenticate, except: :demo_login
我也可以像这样一次排除多个操作:
before_action :authenticate, except [:demo_login, :demo_show]
如何排除特定控制器中的所有操作?
【问题讨论】:
【参考方案1】:在相关控制器中使用skip_before_action :authenticate
。
此方法的格式与before_action
相同,因此如果您想跳过对特定控制器操作的调用:authenticate
,请使用:
skip_before_action :authenticate, only: [:show, :index]
except:
关键字也可以使用。
【讨论】:
before 动作可能存在于继承的控制器中。有没有办法排除控制器而不是父控制器中的操作?以上是关于从 before_action 中排除控制器的主要内容,如果未能解决你的问题,请参考以下文章