Via http://rubypond.com/articles/2009/02/06/capturing-a-form-cancel/
class ApplicationController < ActionController::Base
before_filter :catch_cancel, :update => [:create, :update, :destroy]
after_filter :set_referrer, :only => [:index, :show]
private
def set_referrer
session[:referrer] = url_for(params)
end
def catch_cancel
redirect_to session[:referrer] if params[:commit] == "Cancel"
end
end