web-dev-qa-db-ja.com

Rack-Mini-Profilerを一時的に無効にする方法は?

私はRailsで問題なくラックミニプロファイラーを使用していますが、特に多くの異なるクライアント側コードで作業している一部のコーディングセッションでは、邪魔になります(主にクライアント側のデバッグツールネットワークグラフなど)

Beforeフィルターを使用してオフにしようとしています。これは、ユーザーがプロファイルを表示することを許可されているかどうかも確認するのに役立ちますが、「認証解除」では何も実行されないようです。これがbeforeフィルターとして呼び出される私のコードです。

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も何もしません。

開発環境ファイルに一時的に値を設定してサーバーを再起動するだけでも、それは私の目的に役立ちます。

45
Dave Sanders

最新を取得して入力:

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からスタックトレースを収集し、通常にフィルター処理します。 = sample:スタックトレースのサンプルを取得し、使用量の多いレポートを返します(実験はスタックトレースgemで最適に機能します)
 pp = disable:このセッションのプロファイリングを無効にします
 pp = enable:このセッションのプロファイリングを有効にします(以前に無効にされていた場合)
 pp = profile-gc:このリクエストでgcプロファイリングを実行し、リクエストによって生成されたObjectSpaceを分析します(Ruby 1.9.3のみ)
 pp = profile-gc-time:ビルドを実行-このリクエストに対するGCプロファイリング(Ruby 1.9.3のみ)
83
Sam Saffron

Alt+pを使用して切り替えることもできます。

24
lobati

プロファイラーを最初に無効にしてからオンデマンドでアクティブ化する場合は、次のように初期化ファイルに事前承認コールバックを追加します。

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をURLに付加できます。その後、後で再び無効にできます(pp = disabledは現在のセッションでのみオフになりますが、ENV変数をオフに設定すると、強制的にオンにするまで完全に強制終了されます)。

3
harabbi