diff --git a/app/controllers/versions_controller.rb b/app/controllers/versions_controller.rb index 48612c7b8..03af71b99 100644 --- a/app/controllers/versions_controller.rb +++ b/app/controllers/versions_controller.rb @@ -109,6 +109,10 @@ class VersionsController < ApplicationController if @version.update_attributes(attributes) flash[:notice] = l(:notice_successful_update) redirect_to :controller => 'projects', :action => 'settings', :tab => 'versions', :id => @project + else + respond_to do |format| + format.html { render :action => 'edit' } + end end end end diff --git a/test/functional/versions_controller_test.rb b/test/functional/versions_controller_test.rb index e4ac5c068..50f33c69f 100644 --- a/test/functional/versions_controller_test.rb +++ b/test/functional/versions_controller_test.rb @@ -123,6 +123,15 @@ class VersionsControllerTest < ActionController::TestCase assert_equal 'New version name', version.name assert_equal Date.today, version.effective_date end + + def test_post_update_with_validation_failure + @request.session[:user_id] = 2 + put :update, :id => 2, + :version => { :name => '', + :effective_date => Date.today.strftime("%Y-%m-%d")} + assert_response :success + assert_template 'edit' + end def test_destroy @request.session[:user_id] = 2