Módulo: Mongoide::Persistente::Incrementable
- Ampliado por:
- ActiveSupport::Preocupación
- Incluido en:
- Mongoid::Persistable
- Definido en:
- lib/mongoide/persistable/incrementable.rb
Overview
Define el comportamiento de las operaciones $inc.
Colapso del resumen del método de instancia
-
#inc(incrementos) ⇒ Documento
Incrementa los campos proporcionados por los valores correspondientes.
Detalles del método de instancia
#inc(incrementos) ⇒ Documento
Incrementa los campos proporcionados con los valores correspondientes. Los valores pueden ser positivos o negativos; si no existe ningún valor para el campo, se establecerá 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| operaciones atómicas del proceso(incrementos) hacer |Campo, valor| incremento = valor.is_a?(Gran decimal) ? valor.to_f : valor actual = atributos[Campo] nuevo_valor = (actual || 0) + incremento atributo_de_proceso Campo, nuevo_valor Si ejecutando_atómicamente? atributos[Campo] = nuevo_valor ops[nombre_del_atributo_atómico(Campo)] = incremento end { "$inc" => ops } a no ser que ops.¿vacío? end end |