5

我想跳过Pundit 在一个控制器(家庭)上的policy_scope要求。我试过这个:

 class ApplicationController < ActionController::Base
  include Pundit
  after_action :verify_authorized, :except => :index, unless: :devise_controller?
  after_action :verify_policy_scoped, :only => :index, unless: controller.controller_name == "home"
 end

 class HomeController < ApplicationController
   def index
     redirect_to (new_user_session_path) unless user_signed_in?
     if user_signed_in?
       @user=current_user
     end
    end
  end

但我认为控制器尚未定义或什么?有什么想法或建议吗?

4

2 回答 2

6

我通过向家庭控制器添加 skip_after_action 来完成此操作:

class HomeController < ApplicationController
  skip_after_action :verify_policy_scoped, :only => :index
end
于 2014-09-03T18:44:52.450 回答
4

从 1.0.0 版开始,您可以skip_policy_scope在控制器操作中使用。

于 2019-03-08T18:03:08.567 回答