我在项目中使用了宝石devise
,cancancan
和rails_admin
。我补充说:
before_action: authenticate_user!
application_controller
推荐的devise
中的。
只要涉及网站的管理部分,它就有效。站点的根页面不需要身份验证,但实际上需要登录才能进入。我想这是因为将回调放在application_controller.rb
。
我想知道如何限制并要求只在网站的某些页面上登录,而不是在用户应该访问的页面上,而不需要登录,例如根页面。
答案 0 :(得分:1)
ApplicationController
是所有控制器的祖先。如果您在此控制器中放置一个回调,那么将从您应用的任何控制器调用该回调。要仅从某些控制器执行回调,请移动回调:
before_action: authenticate_user!
来自ApplicationController
,并将其放在需要身份验证的控制器的类主体中。