Written July 24, 2008. Tagged Ruby, Ruby on Rails.
I think it's fairly common in Rails to define a render_404
method and do
render_404 and return
from actions when you want to show a 404 error page (as described here).
A better solution is to raise a custom Error404
exception, then catching that in your ApplicationController
and rendering the 404 page.
Not a huge difference, but this means you don't have to mess with the and return
. It also makes it much easier to divide code across methods and classes, since only the current action can return
from itself, but any code it calls can raise exceptions that bubble up to the ApplicationController
.
I just put
class Error404 < StandardError; end
at the top of my app/controllers/application.rb
and add
rescue_from Error404, :with => :render_404
to the ApplicationController
.
The render_404
method is described in the article I mentioned.