51

我在 Rails 中使用 rack mini profiler 很好,但是在一些编码会话期间,特别是在我处理许多不同的客户端代码时,它会妨碍我。(主要在我的客户端调试工具网络图等)

我正在尝试使用之前的过滤器将其关闭,这也用于查看用户是否有权查看个人资料,但“取消授权”似乎对我没有任何作用。这是我的代码,称为前置过滤器:

def miniprofiler  
 off = true
 if off || !current_user
  Rack::MiniProfiler.deauthorize_request
  return
 elsif current_user.role_symbols.include?(:view_page_profiles)    
  Rack::MiniProfiler.authorize_request
  return
 end
 Rack::MiniProfiler.deauthorize_request
end

我也知道有一个设置“Rack::MiniProfiler.config.authorization_mode”,但我找不到有关可能设置的文档,也没有看到它在代码中使用?现在它告诉我:allow_all,但是:allow_none 也不做任何事情。

即使我可以在开发环境文件中临时设置一个值并重新启动服务器,这也符合我的目的。

4

3 回答 3

99

获取最新信息并输入:

http://mysite.com?pp=disable

完成后输入

http://mysite.com?pp=enable

查看?pp=help所有选项:

将以下内容附加到您的查询字符串:

  pp=help : 显示这个屏幕
  pp=env : 显示机架环境
  pp=skip : 跳过此请求的迷你分析器
  pp=no-backtrace :不收集所有执行的 SQL 的堆栈跟踪(粘性,使用 pp=normal-backtrace 启用)
  pp=normal-backtrace (*) : 从所有执行的 SQL 中收集堆栈跟踪并正常过滤
  pp=full-backtrace :为执行的 SQL 启用完整的回溯(使用 pp=normal-backtrace 禁用)
  pp=sample : 示例堆栈跟踪并返回隔离大量使用的报告(实验最适合堆栈跟踪 gem)
  pp=disable :禁用此会话的分析
  pp=enable :启用此会话的分析(如果以前禁用)
  pp=profile-gc:对该请求执行 gc 分析,分析请求生成的 ObjectSpace(仅限 ruby​​ 1.9.3)
  pp=profile-gc-time:对此请求执行内置 gc 分析(仅限 ruby​​ 1.9.3)
于 2012-09-20T06:20:29.087 回答
44

您也可以使用Alt+p来切换。

于 2013-05-24T19:59:47.257 回答
4

如果您希望最初禁用探查器,然后按需激活...在初始化程序文件中添加预授权回调,例如:

Rack::MiniProfiler.config.pre_authorize_cb = lambda {|env| ENV['RACK_MINI_PROFILER'] == 'on'}

然后在您的应用程序控制器中,添加一个查找 pp 参数的 before_filter

before_filter :activate_profiler
def activate_profiler
  ENV['RACK_MINI_PROFILER'] = 'on' if params['pp']
  ENV['RACK_MINI_PROFILER'] = 'off' if params['pp'] == 'disabled'
end

您的环境最初不会设置 RACK_MINI_PROFILER,但如果您想打开它,您可以将 ?pp=enabled 附加到您的网址上。然后您可以稍后再次禁用( pp=disabled 只会在当前会话中将其关闭,但将 ENV 变量设置为 off 将完全杀死它,直到您强制重新打开它)。

于 2015-03-12T19:00:02.997 回答