FIX: 🐛 Saving the same custom field array twice would raise an error

This commit is contained in:
Robin Ward 2015-01-15 15:31:31 -05:00
parent 3ab2f105b4
commit 505fa9f1cf
2 changed files with 9 additions and 1 deletions

View File

@ -117,7 +117,7 @@ module HasCustomFields
array_fields.each do |field_name, fields|
if fields.length == dup[field_name].length &&
fields.map{|f| f.value} == dup[field_name]
dup.delete(f.name)
dup.delete(field_name)
else
fields.each{|f| f.destroy }
end

View File

@ -115,6 +115,14 @@ describe HasCustomFields do
db_item.save
expect(db_item.custom_fields).to eq({"a" => ["c", "d"]})
# It can be updated to the exact same value
db_item.custom_fields.update('a' => ['c'])
db_item.save
expect(db_item.custom_fields).to eq({"a" => "c"})
db_item.custom_fields.update('a' => ['c'])
db_item.save
expect(db_item.custom_fields).to eq({"a" => "c"})
db_item.custom_fields.delete('a')
expect(db_item.custom_fields).to eq({})