Gem CanCanCan 是设计

Gem CanCanCan e Devise

我在我的项目中使用了 gem devisecancancanrails_admin。我补充说:

before_action: authenticate_user!

application_controller 中,由 devise 推荐。

只要涉及站点的管理部分,它就可以工作。站点的根页面应该是不需要认证的,但实际上需要登录才能进入。我想这是因为将回调放在 application_controller.rb.

我想知道如何限制和要求仅在站点的某些页面上登录,而不是在用户无需登录即可访问的页面上,例如根页面。

ApplicationController 是所有控制器的祖先。如果你在这个控制器中放置一个回调,那么它会从你应用程序上的任何控制器调用。要仅从某些控制器执行回调,请移动回调:

before_action: authenticate_user!

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