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