Módulo: Mongoid::Persistable::Incrementable
- Estendido por:
- ActiveSupport::Concern
- Incluído em:
- Mongoid::Persistable
- Definido em:
- lib/mongoid/persistable/incrementable.rb
Visão geral
Define o comportamento das operações $inc.
Recolhimento do Resumo do método de instância
-
#inc(incrementos) ➤ Documento
Aumente os campos fornecidos pelos valores correspondentes.
Detalhes do método de instância
#inc(incrementos) ➤ Documento
Aumente os campos fornecidos pelos valores correspondentes. Os valores podem ser positivos ou negativos e, se não existir nenhum valor para o campo, ele será definido com o valor fornecido.
21 22 23 24 25 26 27 28 29 30 31 32 33 |
# Arquivo 'lib/mongoid/persistable/incrementable.rb', linha 21 def inc(incrementos) prepare_atomic_operation fazer |ops| process_atomic_operations(incrementos) fazer |Campo, valor| Incremento = valor.is_a?(BigDecimal) ? valor.to_f : valor Current = attributes[Campo] new_value = (Current || 0) + Incremento process_attribute Campo, new_value se execution_atomicly? attributes[Campo] = new_value ops[atomic_attribute_name(Campo)] = Incremento end { "$inc" => ops } a menos que ops.vazio? end end |