Monday, November 21, 2011

rescue_from temporary fix for rails 3.0 and 3.1

In rails 3.0 and 3.1 rescue_from will not successfully rescue a ActionController::RoutingError (Bug Report). Based on comments in the bug report here is the solution I came up with. A way that handles this bug temporarily and once it is fixed all that needs to be cleaned up is a single line in the routes.

First set up a simple errors controller:
class ErrorsController < ApplicationController
  def missing_page
   render :status => :not_found

The view for missing_page is intended to be shown to visitors as the 404 page, it uses the application layout as set up here but you can set :layout to false or whatever other layout you might wish to use.
In the application controller add the following lines:
rescue_from ActiveRecord::RecordNotFound, :with => :missing_page
rescue_from ActionController::UnknownAction, :with => :missing_page
rescue_from ActionController::RoutingError, :with => :missing_page
The first two lines work as expected, the line with ActionController::RoutingError does not work correctly though, it will start working once the bug is fixed.

The temporary fix for routing errors not being handled properly is to add the following line as the last route in the route file.
match '*path', :to => 'errors#missing_page'

Once the bug is fixed all you need to do to clean this up is remove the line that was placed at the end of the route file.


Giri Mani 2 said...

Thank you for sharing like this information. This is the most easy way of learning. This helps me to get some idea regarding this and helps me to bring a creative thought.
Java Training in Chennai

Jeanne Davies said...

Brilliant post thanks for lots of sharing really great post i am very happy to read your post e commerce web development

Sathik Ali. A said...

I am very much fond of your nice post..IICT is the best Java Training Institute in Chennai managed by MNC Experts.

Gopi Perumal said...

Very Much Informative and cool post.. eagerly waiting for more post..
SAP Training in Chennai | SAP Training Institutes in Chennai | Best SAP Training in Chennai

Gopi Perumal said...

Nice psot.. loved it
ETL Testing Training in Chennai | Informatica Training in Chennai

Gopi Perumal said...

Pretty article! I found some useful information in your blog, it was awesome to read, thanks for sharing this great content to my vision, keep sharing.
PMP Training | PMP Training in Chennai

Anu Priya said...

Thanks for sharing this informative blog. I have read your blog and I gathered some valuable information from this blog. Keep posting.
Java Training in Chennai | SAP Training in Chennai

sankar meta said...

Java training center java training center in Chennai
java learning material download from java tutorial for java beginners

Selenium training center selenium testing raining center in chennai
Mettur dam updates Mettur Diary

Krishna Veni said...

Good one, very informative.. thanks for sharing your views and ideas.. it is very useful to me.. thanks once again.

Best Java Training in chennai

Java Course in chennai