Как протестировать 500.html в rails development env?
Я хочу протестировать 500 страниц ошибок в моем приложении Rails, используя среду разработки.
Я уже пробовал это в config/environments/development.rb
:
config.action_controller.consider_all_requests_local = false
Но это, похоже, не имеет никакого эффекта.
Ответы
Ответ 1
Вы можете:
- получить доступ к приложению, используя адрес, отличный от localhost или 127.0.0.1, который по умолчанию считает локальные запросы
- Заменить
local_request?
в application_controller.rb
на что-то вроде:
def local_request?
false
end
Вторая остановка рельсов обрабатывает запросы с localhost и 127.0.0.1, поскольку локальные запросы, которые в сочетании с consider_all_requests_local = false
должны показать вам вашу страницу 500.html.
Ответ 2
Единственный способ, которым я нашел это до сих пор, - установить development.rb
config.consider_all_requests_local = false
Затем выполните доступ к URL-адресам, используя мой локальный IP-адрес: http://192.168.1.135:3000/blah
Другие упомянутые настройки не имеют никакого эффекта.
Ответ 3
Ни одно из предлагаемых решений не работало в моем приложении Rails 3. Быстрое и грязное решение для меня состояло в том, чтобы просто щелкнуть страницы ошибок непосредственно, чтобы увидеть визуализированный HTML. Например,
http://0.0.0.0:3000/404.html
http://0.0.0.0:3000/500.html
Ответ 4
Просто выполните http://localhost:3000/404 или /500 для доступа к этим страницам и посмотрите, как они выглядят.
Ответ 5
Вы должны добавить следующие строки в application_controller,
unless ActionController::Base.consider_all_requests_local
rescue_from Exception, :with => :render_500
if ActiveRecord::RecordNotFound
rescue_from Exception, :with => :render_404
end
rescue_from ActionController::RoutingError, :with => :render_404
rescue_from ActionController::UnknownController, :with => :render_404
rescue_from ActionController::UnknownAction, :with => :render_404
end
Затем попробуйте выполнить следующие настройки.
config.action_controller.consider_all_requests_local = false
в config/environment/development.rb:
Это сработает. Пожалуйста, не забудьте написать функцию в application_controller.rb, чтобы отобразить макет для каждого из сообщений об ошибках.
Ответ 6
В дополнение к настройке:
config.consider_all_requests_local = false
Мне также нужно было установить:
config.action_dispatch.show_exceptions = true
Ответ 7
Я думаю, что правильная настройка для twiddle заключается в следующем:
config.action_view.debug_rjs = false
Почему он все еще помечен как rjs
, не совсем ясен.
Ответ 8
если вы просто хотите заставить ошибку 500 увидеть, как она выглядит, вы можете просто добавить это в представление:
Пример haml:
= render :partial => "broken", :status => 500