Как временно отключить Rack-Mini-Profiler?

Я использую стеллажный мини-профилировщик в rails просто отлично, но во время некоторых сессий кодирования, особенно когда я работаю над большим количеством другого кода на стороне клиента, это мешает. (в основном на клиентской стороне, средства отладки сетевых графиков и т. д.)

Я пытаюсь отключить его с помощью фильтра "до", который также служит для проверки, авторизован ли пользователь в любом случае просматривать профиль, но "деавторизация", похоже, ничего не делает для меня. Вот мой код, который называется фильтром 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 тоже ничего не делает.

Даже если я могу просто временно установить значение в файле среды разработки и перезапустить сервер, это послужит моим целям.

3 ответа

Решение

Получить последнюю версию и введите:

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- обратная трассировка для отключения) 
  pp=sample: выборка трассировок стека и возврат отчета, изолирующего интенсивное использование (эксперимент лучше всего работает с гемом stacktrace) 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'}

затем в контроллере приложения добавьте before_filter, который ищет параметр pp

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 в off отключит ее полностью, пока вы не включите ее снова).

Другие вопросы по тегам