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

Как протестировать 500.html в rails development env?

Я хочу протестировать 500 страниц ошибок в моем приложении Rails, используя среду разработки.

Я уже пробовал это в config/environments/development.rb:

config.action_controller.consider_all_requests_local = false

Но это, похоже, не имеет никакого эффекта.

4b9b3361

Ответ 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