Módulo: Mongoid::Persistable::Incrementable
- Ampliado por:
- ActiveSupport::Concern
- Incluido en:
- Mongoid::Persistable
- Definido en:
- lib/mongoid/persistable/incrementable.rb
Overview
Define el comportamiento de las operaciones $inc.
Resumen del método de instancia colapsar
-
#inc(incrementos) ⇒ Documento
Incrementa los campos proporcionados por los valores correspondientes.
Detalles del método de instancia
#inc(incrementos) ⇒ Documento
Incrementa los campos proporcionados por los valores correspondientes. Los valores pueden ser positivos o negativos, y si no existe ningún valor para el campo, se asignará con el valor proporcionado.
19 20 21 22 23 24 25 26 27 28 29 30 31 |
# Archivo 'lib/mongoid/persistable/incrementable.rb', línea 19 def inc(incrementos) preparar_operación_atómica hacer |ops| proceso_operaciones_atómicas(incrementos) hacer |Campo, Valor| incremento = Valor.is_a?(BigDecimal) ? Valor.to_f : Valor Actual = atributos[Campo] nuevo valor = (Actual || 0) + incremento process_attribute Campo, nuevo valor si ejecutando_atómicamente? atributos[Campo] = nuevo valor ops[atomic_attribute_name(Campo)] = incremento end { '$inc' => ops } a menos que ops.¿vacío? end end |