lib/mongo_mapper/plugins/keys.rb in mongo_mapper-0.9.0 vs lib/mongo_mapper/plugins/keys.rb in mongo_mapper-0.9.1
- old
+ new
@@ -6,11 +6,11 @@
module Keys
extend ActiveSupport::Concern
included do
extend ActiveSupport::DescendantsTracker
- key :_id, ObjectId
+ key :_id, ObjectId, :default => lambda { BSON::ObjectId.new }
end
module ClassMethods
def inherited(descendant)
descendant.instance_variable_set(:@keys, keys.dup)
@@ -267,9 +267,14 @@
end
def default_id_value(attrs={})
id_provided = !attrs.nil? && attrs.keys.map { |k| k.to_s }.detect { |k| k == 'id' || k == '_id' }
if !id_provided && self.class.can_default_id?
+ unless keys['_id'].default_value
+ warn "[DEPRECATED] Custom IDs will no longer be automatically populated. If you definte your own :_id key, set a default:\n key :_id, String, :default => lambda { BSON::ObjectId.new }"
+ warn caller.grep(/test/).join("\n")
+ end
+
write_key :_id, BSON::ObjectId.new
end
end
private