Własna strona 404 zamiast defaultowego Routing Error

W przypadku gdy ktoś daje adres, którego nie mam, albo, który wyłączyłem z routingu, chciałbym aby dostał jakąś moją własną stronę z błędem 404.
Tak przeglądam SO i różne inne strony i wygląda to na jakąś magię. Na razie widzę, że większość ludzi poleca takie coś:

config.exceptions_app = self.routes

“Now, every time there is an exception, your router is going to be invoked. Therefore, to render custom 404 pages, you could simply add to your router:”

match '/404', :to => 'errors#not_found'

Czy z tego mam rozumieć, że obojętnie jaki wyjątek (niekoniecznie związany z routingiem) odpala routera? To chyba trochę bezsensowne zżeranie zasobów serwera.

Jak najlepiej to zrobić?

Jeżeli chcesz statyczne strony z błędem - edytuj plik public/404.html.

Jeżeli dynamiczne to w ApplicationController dodaj coś w tę deseń:

[code]rescue_from ActionController::RoutingError, with: :render_404
rescue_from ActiveRecord::RecordNotFound, with: :render_404
rescue_from ActionView::MissingTemplate, with: :render_404

private
def render_404
respond_to do |format|
format.html { render layout: ‘layouts/error’, template: ‘errors/not_found’, status: 404 }
end
end[/code]

Coś mi nie działa, z tego co wyczytałem, żeby to działało w środowisku development muszę w development.rb ustawić config.consider_all_requests_local na false. W ten sposób pokazuje mi 404.html z public.
Dalej usunąłem ten plik z public, dałem swój layout z aplikacji format.html { render layout: 'layouts/application', template: 'errors/not_found', status: 404 }
, a plik not_found.erb.html ma w sobie tylko tekst: test123