fix double save missing error by using copy not actual reference

This commit is contained in:
Benjamin Kampmann 2014-04-25 18:22:49 +02:00
parent 2450088c03
commit 48f016c7f5
2 changed files with 20 additions and 2 deletions

View file

@ -14,6 +14,10 @@ module Concern
end
end
def custom_fields=(data)
custom_fields.replace(data)
end
protected
def save_custom_fields
@ -24,7 +28,7 @@ module Concern
if dup[f.name] != f.value
f.destroy
else
dup.remove[f.name]
dup.delete(f.name)
end
end
@ -32,7 +36,7 @@ module Concern
_custom_fields.create(name: k, value: v)
end
@custom_fields_orig = @custom_fields
@custom_fields_orig = dup
end
end
end

View file

@ -51,6 +51,20 @@ describe Concern::HasCustomFields do
test_item.custom_fields.should == {"jack" => "jill"}
end
it "double save actually saves" do
test_item = TestItem.new
test_item.custom_fields = {"a" => "b"}
test_item.save
test_item.custom_fields["c"] = "d"
test_item.save
db_item = TestItem.find(test_item.id)
db_item.custom_fields.should == {"a" => "b", "c" => "d"}
end
it "simple modifications don't interfere" do
test_item = TestItem.new