Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

Получить последние и напечатать:

http://mysite.com?pp=disable

Когда вы закончите, введите

http://mysite.com?pp=enable

См. ?pp=help для всех параметров:

Append the following to your query string:

  pp=help : display this screen
  pp=env : display the rack environment
  pp=skip : skip mini profiler for this request
  pp=no-backtrace : don't collect stack traces from all the SQL executed (sticky, use pp=normal-backtrace to enable)
  pp=normal-backtrace (*) : collect stack traces from all the SQL executed and filter normally
  pp=full-backtrace : enable full backtraces for SQL executed (use pp=normal-backtrace to disable) 
  pp=sample : sample stack traces and return a report isolating heavy usage (experimental works best with the stacktrace gem)
  pp=disable : disable profiling for this session 
  pp=enable : enable profiling for this session (if previously disabled)
  pp=profile-gc: perform gc profiling on this request, analyzes ObjectSpace generated by request (ruby 1.9.3 only)
  pp=profile-gc-time: perform built-in gc profiling on this request (ruby 1.9.3 only)

Ответ 2

Вы также можете использовать Alt+p для переключения.

Ответ 3

Если вы хотите, чтобы профилировщик был отключен изначально, а затем активировать по требованию... добавьте предварительный авторизационный обратный вызов в файле инициализации, например:

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

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

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