From 917e42ed29ef7cf2484f6db4a77a99b579fffa02 Mon Sep 17 00:00:00 2001 From: r888888888 Date: Wed, 29 Jun 2016 14:47:32 -0700 Subject: [PATCH] when merging post versions, delete old version rather than updating it --- app/models/post.rb | 17 +++++------------ test/unit/post_version_test.rb | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/app/models/post.rb b/app/models/post.rb index 8858905d6..39297f15e 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -1326,10 +1326,10 @@ class Post < ActiveRecord::Base def create_version(force = false) if new_record? || rating_changed? || source_changed? || parent_id_changed? || tag_string_changed? || force if merge_version? - merge_version - else - create_new_version + delete_previous_version end + + create_new_version end end @@ -1348,16 +1348,9 @@ class Post < ActiveRecord::Base ) end - def merge_version + def delete_previous_version prev = versions.last - if prev - prev.update_attributes( - :rating => rating, - :source => source, - :tags => tag_string, - :parent_id => parent_id - ) - end + prev.destroy end def revert_to(target) diff --git a/test/unit/post_version_test.rb b/test/unit/post_version_test.rb index fcb6992d7..cd9f45a01 100644 --- a/test/unit/post_version_test.rb +++ b/test/unit/post_version_test.rb @@ -59,6 +59,20 @@ class PostVersionTest < ActiveSupport::TestCase end end + context "that should be merged" do + setup do + @parent = FactoryGirl.create(:post) + @post = FactoryGirl.create(:post, :tag_string => "aaa bbb ccc", :rating => "q", :source => "xyz") + end + + should "delete the previous version" do + assert_equal(1, @post.versions.count) + @post.update_attributes(:tag_string => "bbb ccc xxx", :source => "") + @post.reload + assert_equal(1, @post.versions.count) + end + end + context "that has been updated" do setup do @parent = FactoryGirl.create(:post)