我正在尝试在我的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
但是,任何用户的每个请求都会显示探查器。
有谁知道可能是什么问题?
答案 0 :(得分:15)
那么,对于遇到同样问题的人......
更深入的调试发现gem已配置为忽略init上的授权机制。为了仅在某些情况下启用性能分析(例如,非生产或仅对管理员用户),您需要覆盖application.rb
中的默认配置(或者最好是某些特定的配置文件):
Rack::MiniProfiler.config.authorization_mode = :whitelist if Rails.env.production?
否则配置设置为:allowall