Thursday, August 16, 2007

Catching all non-matching URLs on Rails

One of the early things that I needed to for a web application, was to try to map all unhandled or malformed URLs to be sent to Rails. It's important to do that especially when it's too easy to make a mistake typing on a URL, also because that instead of the typical 404 message people normally see, Rails gives you an unsightly routing error, with a "no route to match" message:

In order to change that and assign a controller to any unhandled URLs, append the following line as the last statement of your config/routes.rb:
map.connect '*anything', :controller => 'controller', :action => 'action'
Replace controller and action with the desired controller and action respectively. This will allow all unhandled URLs to be managed by the controller of your choosing.


Anonymous said...

Thanks for sharing. it helps!!!

Post a comment