Gem CanCanCan e Devise

时间:2018-05-29 11:34:23

标签: ruby-on-rails devise cancancan

我在项目中使用了宝石devisecancancanrails_admin。我补充说:

before_action: authenticate_user!
application_controller推荐的devise中的

只要涉及网站的管理部分,它就有效。站点的根页面不需要身份验证,但实际上需要登录才能进入。我想这是因为将回调放在application_controller.rb

我想知道如何限制并要求只在网站的某些页面上登录,而不是在用户应该访问的页面上,而不需要登录,例如根页面。

1 个答案:

答案 0 :(得分:1)

ApplicationController是所有控制器的祖先。如果您在此控制器中放置一个回调,那么将从您应用的任何控制器调用该回调。要仅从某些控制器执行回调,请移动回调:

before_action: authenticate_user!

来自ApplicationController,并将其放在需要身份验证的控制器的类主体中。