ruby-on-rails – 为什么我不能为非管理员用户取消Rack-mini-profiler的授权

我正在尝试在我的ROR应用程序上安装Rack-mini-profiler.
我安装了gem并且探查器在开发中运行良好,但我无法取消对非管理员用户的特定请求的授权.
我将以下代码放在我的ApplicationController before_filter中
def authorize_mini_profiler
    if current_user.nil?
      Rack::MiniProfiler.deauthorize_request
      return
    elsif is_admin_user
      Rack::MiniProfiler.authorize_request
      return
    end
    Rack::MiniProfiler.deauthorize_request
end

在调试中,我看到调用了deauthorize方法,但仍然显示了探查器.

我甚至尝试过使用这段代码

def authorize_mini_profiler
    Rack::MiniProfiler.deauthorize_request
end

但是,任何用户的每个请求都会显示探查器.

有谁知道可能是什么问题?

解决方法

好吧,对于那些遇到同样问题的人……

更深入的调试发现gem配置为忽略init上的授权机制.为了仅在某些情况下启用性能分析(例如,非生产或仅对管理员用户),您需要覆盖application.rb中的默认配置(或者最好是某些特定的配置文件):

Rack::MiniProfiler.config.authorization_mode = :whitelist if Rails.env.production?

否则配置设置为:allowall

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...