lib/mongoid/versioning.rb in mongoid-2.4.1 vs lib/mongoid/versioning.rb in mongoid-2.4.2
- old
+ new
@@ -38,10 +38,19 @@
if previous && versioned_attributes_changed?
versions.build(
previous.versioned_attributes, :without_protection => true
).attributes.delete("_id")
if version_max.present? && versions.length > version_max
- versions.delete(versions.first)
+ deleted = versions.first
+ if deleted.paranoid?
+ versions.delete_one(deleted)
+ collection.update(
+ atomic_selector,
+ { "$pull" => { "versions" => { "version" => deleted.version }}}
+ )
+ else
+ versions.delete(deleted)
+ end
end
self.version = (version || 1 ) + 1
end
end