Как проверить 500.html в env разработки рельсов? - PullRequest
40 голосов
/ 11 ноября 2010

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

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

config.action_controller.consider_all_requests_local = false

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

Ответы [ 8 ]

73 голосов
/ 10 марта 2011

Единственный способ, который я нашел для этого, - это установить development.rb

config.consider_all_requests_local = false

Затем получить доступ к URL-адресам, используя мой локальный IP-адрес: http://192.168.1.135:3000/blah

Другие упомянутые настройки, кажется, не имеют никакого эффекта.

25 голосов
/ 30 марта 2011

Ни одно из предложенных решений не работало в моем приложении Rails 3. Быстрое и грязное решение для меня состояло в том, чтобы просто поразить страницы ошибок напрямую, чтобы увидеть визуализированный HTML. Например,

http://0.0.0.0:3000/404.html

http://0.0.0.0:3000/500.html
20 голосов
/ 03 января 2016

Просто введите http://localhost:3000/404 или / 500, чтобы получить доступ к этим страницам и посмотреть, как они выглядят.

12 голосов
/ 15 февраля 2011

Вы можете либо:

  1. получить доступ к приложению, используя адрес, отличный от localhost, либо 127.0.0.1, который по умолчанию rails считает локальными запросами
  2. Переопределить local_request? в application_controller.rb что-то вроде:
def local_request?
  false
end

Вторая остановит рельсы, обрабатывающие запросы от localhost и 127.0.0.1 как локальные запросы, которые в сочетании с consider_all_requests_local = false должны показать вам ваши 500.html page.

6 голосов
/ 23 февраля 2016

В дополнение к настройке: config.consider_all_requests_local = false Мне также нужно было установить: config.action_dispatch.show_exceptions = true

4 голосов
/ 04 мая 2012

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

0 голосов
/ 18 января 2017

Если вы просто хотите вызвать ошибку 500, чтобы увидеть, как она выглядит, вы можете просто добавить это к представлению:

Пример хамла:

= render :partial => "broken", :status => 500
0 голосов
/ 11 ноября 2010

Я думаю, что правильная настройка для twiddle такова:

config.action_view.debug_rjs = false

Почему он все еще помечен rjs, не совсем понятно.

...