In rails 3.2, it’s easier than that:
Add this to config/application.rb
:
config.exceptions_app = self.routes
That causes errors to be routed via the router. Then you just add to config/routes.rb
:
match "/404", :to => "errors#not_found"
I got this info from item #3 on the blog post “My five favorite hidden features in Rails 3.2” by By José Valim.