Módulo: Mongoide::Persistente::Multiplicable
- Ampliado por:
- ActiveSupport::Preocupación
- Incluido en:
- Mongoid::Persistable
- Definido en:
- lib/mongoid/persistable/multipliable.rb
Overview
Define el comportamiento para operaciones $mul.
Colapso del resumen del método de instancia
-
#mul(factores) ⇒ Documento
Multiplica los campos proporcionados por los valores correspondientes.
Detalles del método de instancia
#mul(factores) ⇒ Documento
Multiplica los campos proporcionados por los valores correspondientes. Los valores pueden ser positivos o negativos; si no existe ningún valor para el campo, se establecerá en cero.
21 22 23 24 25 26 27 28 29 30 31 32 33 |
# Archivo 'lib/mongoid/persistable/multipliable.rb', línea 21 def mul(factores) preparar_operación_atómica hacer |ops| operaciones atómicas del proceso(factores) hacer |Campo, valor| factor = valor.is_a?(Gran decimal) ? valor.to_f : valor actual = atributos[Campo] nuevo_valor = (actual || 0) * factor atributo_de_proceso Campo, nuevo_valor Si ejecutando_atómicamente? atributos[Campo] = nuevo_valor ops[nombre_del_atributo_atómico(Campo)] = factor end { "$mul" => ops } a no ser que ops.¿vacío? end end |