diff --git a/app/controllers/rates_controller.rb b/app/controllers/rates_controller.rb index fcc811c..28ba936 100644 --- a/app/controllers/rates_controller.rb +++ b/app/controllers/rates_controller.rb @@ -108,7 +108,13 @@ class RatesController < ApplicationController @rate.destroy respond_to do |format| - format.html { redirect_to(rates_url(:user_id => @rate.user_id)) } + format.html { + if params[:back_url] && !params[:back_url].blank? + redirect_to(params[:back_url]) + else + redirect_to(rates_url(:user_id => @rate.user_id)) + end + } format.xml { head :ok } end end diff --git a/spec/controllers/rates_controller_spec.rb b/spec/controllers/rates_controller_spec.rb index 9b6a9f9..9196dec 100644 --- a/spec/controllers/rates_controller_spec.rb +++ b/spec/controllers/rates_controller_spec.rb @@ -427,6 +427,13 @@ describe RatesController, "as an administrator" do response.should redirect_to(rates_url(:user_id => @user.id)) end + it 'should redirect to the back_url if set' do + back_url = '/back_to_this_url' + Rate.stub!(:find).and_return(mock_rate(:destroy => true)) + delete :destroy, :id => "1", :back_url => back_url + response.should redirect_to(back_url) + end + end end