Пользовательское действие 404 в Rails

По умолчанию Rails будет отображать 404.html, а затем сочтет уместной ошибку 404. Однако я хочу сделать это на пользовательской странице. Пожалуйста, предложите правильный способ сделать это.


person khanh    schedule 04.11.2010    source источник


Ответы (3)


Вы можете использовать исправление обезьяны render_404.

Или вы можете установить маршрут по умолчанию в нижней части файла маршрутов, который ведет к действию, которое возвращает код состояния 404.

В идеале, если вам не нужен пользовательский код в 404, вы можете просто отредактировать статический 404.html, что проще всего.

person Sam Saffron    schedule 04.11.2010
comment
Есть битая ссылка. - person Travis Pessetto; 18.06.2014

Этот ответ было на удивление трудно найти.

Если вам нужна статическая страница, отредактируйте 404.html. Сделанный.

Если вам нужна динамическая страница, то:

в config/routes.rb:

match '*not_found', to: 'errors#error_404' unless Rails.application.config.consider_all_requests_local

Закомментируйте предложение unless, чтобы проверить страницу 404 на локальном компьютере разработчика.

Сгенерируйте кучу файлов:

rails generate controller errors error_404

Отредактируйте views/errors/error_404.html.erb для настройки.

Это работает для Rails 3.1 и 3.2.2.

person B Seven    schedule 05.10.2012
comment
как насчет кода для динамических страниц ошибок для других кодов состояния, таких как 500 или 422? - person sambehera; 19.02.2013
comment
Отличное решение! Намного проще, чем другие ответы, которые я нашел по этой проблеме. Спасибо. - person jfdimark; 13.03.2013

В зависимости от того, что вам нужно, наш гем может помочь: http://github.com/hedgeyedev/snow

person Benjamin Oakes    schedule 03.06.2011