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:スタックトレースをサンプリングし、大量の使用を分離したレポートを返します(実験はstacktrace 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 が設定されていませんが、有効にしたい場合は、URL に ?pp=enabled を追加できます。その後、後で再度無効にすることができます (pp=disabled は現在のセッションでのみオフにしますが、ENV 変数をオフに設定すると、強制的にオンに戻すまで完全に強制終了されます)。

于 2015-03-12T19:00:02.997 に答える