Módulo: Mongoid::Persistable::Incrementable
- Ampliado por:
- ActiveSupport::Concern
- Incluido en:
- Mongoid::Persistable
- Definido en:
- lib/mongoide/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.
21 22 23 24 25 26 27 28 29 30 31 32 33 |
# Archivo 'lib/mongoid/persistable/incrementable.rb', línea 21 def Inc(incrementos) preparar_operación_atómica hacer |ops| proceso_operaciones_atómicas(incrementos) hacer |Campo, Valor| incremento = Valor.is_a?(Gran decimal) ? 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 |