在一个控制器上跳过专家范围

Posted

技术标签:

【中文标题】在一个控制器上跳过专家范围【英文标题】:Skip pundit scope on one controller 【发布时间】:2014-09-03 18:20:25 【问题描述】:

我想跳过 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

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

【问题讨论】:

【参考方案1】:

我通过向家庭控制器添加一个 skip_after_action 来实现这一点:

class HomeController < ApplicationController
  skip_after_action :verify_policy_scoped, :only => :index
end

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于在一个控制器上跳过专家范围的主要内容,如果未能解决你的问题,请参考以下文章

指定在 git commit --no-verify 上跳过哪个钩子

动作脚本 3 - 在时间线上跳过动作

UIView animatewithduration 在 iOS 7 上跳过动画,但在 iOS 8 上运行良好

未连接适配器;在 Kotlin 上跳过布局

试图在 PYSPARK 中的 Nonetype 属性(null)上跳过 python UDF

E/RecyclerView:没有附加适配器;在片段内的recyclerview上跳过布局