私は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も何もしません。
開発環境ファイルに一時的に値を設定してサーバーを再起動するだけでも、それは私の目的に役立ちます。
最新を取得して入力:
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のみ)
Alt+p
を使用して切り替えることもできます。
プロファイラーを最初に無効にしてからオンデマンドでアクティブ化する場合は、次のように初期化ファイルに事前承認コールバックを追加します。
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変数をオフに設定すると、強制的にオンにするまで完全に強制終了されます)。