在一个控制器上略过权威范围

时间:2014-09-03 18:20:26

标签: ruby-on-rails-4 pundit

我想在一个控制器(主页)上跳过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

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

2 个答案:

答案 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