diff --git a/app/controllers/wiki_controller.rb b/app/controllers/wiki_controller.rb index 5ce55f2ce..a7ad964e7 100644 --- a/app/controllers/wiki_controller.rb +++ b/app/controllers/wiki_controller.rb @@ -185,11 +185,6 @@ class WikiController < ApplicationController } format.api { render_api_head :conflict } end - rescue ActiveRecord::RecordNotSaved - respond_to do |format| - format.html { render :action => 'edit' } - format.api { render_validation_errors(@content) } - end end # rename a page diff --git a/app/models/wiki_page.rb b/app/models/wiki_page.rb index 9d68de2b6..61e78873d 100644 --- a/app/models/wiki_page.rb +++ b/app/models/wiki_page.rb @@ -216,13 +216,18 @@ class WikiPage < ActiveRecord::Base end # Saves the page and its content if text was changed + # Return true if the page was saved def save_with_content(content) ret = nil transaction do ret = save if content.text_changed? - self.content = content - ret = ret && content.changed? + begin + self.content = content + ret = ret && content.changed? + rescue ActiveRecord::RecordNotSaved + ret = false + end end raise ActiveRecord::Rollback unless ret end