Module: Mongoid::AutoIncrement
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/mongoid/auto_increment.rb,
lib/mongoid/auto_increment/version.rb
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- VERSION =
"2.6.1"
Instance Method Summary collapse
Instance Method Details
#auto_increment! ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/mongoid/auto_increment.rb', line 46 def auto_increment! client = self.class.mongo_client self.class.auto_increment_classes.each do |klass| klass.auto_incremented_fields.each do |name| unless self[name] result = client.command({ findAndModify: self.class.auto_increment_collection, query: {_id: "#{klass.auto_increment_class_prefix}_#{name}"}, update: {"$inc" => {klass.auto_increment_value_field => 1}}, upsert: true, new: true, }) self[name] = result.first["value"][klass.auto_increment_value_field] end end end end |
#dup ⇒ Object
64 65 66 67 68 69 70 71 72 |
# File 'lib/mongoid/auto_increment.rb', line 64 def dup copy = super self.class.auto_increment_classes.each do |klass| klass.auto_incremented_fields.each do |name| copy[name] = nil end end copy end |