我想在一个控制器(主页)上跳过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
但我认为控制器尚未定义或其他什么?有什么想法或建议吗?
答案 0 :(得分:5)
我通过向home控制器添加skip_after_action来完成此操作:
class HomeController < ApplicationController
skip_after_action :verify_policy_scoped, :only => :index
end
答案 1 :(得分:1)
从1.0.0版开始,您可以在控制器操作中使用skip_policy_scope
。