Мультиблог на Ruby on Rails. Реализация 404 страницы. Урок 13.

В серии данных уроков основной задачей было разработать мультиблог и тем самым дать вам основу для дальнейшей работы в Ruby on Rails. Считаю что данная цель была достигнута: все страницы шаблона были реализованы и даже сверх того. Поэтому данный урок будет заключительным, а в качестве завершающего штриха, мы рассмотрим создание 404 страницы. 

Страница 404

Здесь надо понимать, что данную страницу имеет смысл реализовывать только тогда, когда сайт работает в боевом (производственном) режиме. На локальном сервере заниматься этим смысла особо нет, потому что нам наоборот, удобно увидеть отладочную информацию и тем самым определить причину, по которой страница не нашлась.

Но если по какой-то причине, вам нужно всё-таки посмотреть как будет выглядеть 404 страница в локальном режиме, то необходимо проделать несколько действий:

  1. В файле config/environments/development.rb установить настройку config.consider_all_requests_local в значение false.
  2. В файле config/application.rb добавить строчку:

    config.exceptions_app = self.routes
    
  3. Удалить файл по следующему пути: public/404.html

Ну а далее мы уже работаем по стандартной схеме. Прописываем в файл роутинга маршрут, указывая контролер, который будет обслуживать 404 страницу:

get '/404', to: "errors#not_found"

Соответственно создаём контролер errors_controller (app/controllers/errors_controller.rb) со следующим содержимым:

class ErrorsController < ApplicationController

def not_found
  respond_to do |format|
    format.html { render status: 404 }
  end
end

end

Сам шаблон (app/views/errors/not_found.html.erb) для страницы 404 будет максимально простым:

<div style="text-align: center;">
  <font size="24">404 ошибка</font>
</div>

И на этом, данную серию уроков можно считать законченной, надеюсь она была вам полезной!