从before_action中排除控制器

时间:2016-04-27 00:48:46

标签: ruby-on-rails ruby-on-rails-4 controller

我正在使用before_action过滤器来调用authenticate,如果用户无权访问所请求的网页,则会将用户重定向回主页。

我想从此步骤中排除某个页面,仅用于测试目的。

到目前为止,我所看到的是,我可以使用except将某些控制器操作排除在before_action过滤器之外,如下所示:

before_action :authenticate, except: :demo_login

我也可以一次排除多个动作:

before_action :authenticate, except [:demo_login, :demo_show]

如何排除特定控制器中的所有操作?

1 个答案:

答案 0 :(得分:29)

在相关控制器中使用skip_before_action :authenticate

此方法的格式与before_action相同,因此,如果您要跳过针对特定控制器操作调用:authenticate,请使用:

skip_before_action :authenticate, only: [:show, :index]

也可以使用except:关键字。