Módulo: Mongoid::Persistable::Multipliable
- Ampliado por:
- ActiveSupport::Concern
- Incluido en:
- Mongoid::Persistable
- Definido en:
- lib/mongoid/persistable/multipliable.rb
Overview
Define el comportamiento para operaciones $mul.
Resumen del método de instancia colapsar
-
#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, y 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| proceso_operaciones_atómicas(factores) hacer |Campo, Valor| factor = Valor.is_a?(Gran decimal) ? Valor.to_f : Valor Actual = atributos[Campo] nuevo_valor = (Actual || 0) * factor process_attribute Campo, nuevo_valor si ejecutando_atómicamente? atributos[Campo] = nuevo_valor ops[atomic_attribute_name(Campo)] = factor end { "$mul" => ops } a menos que ops.¿vacío? end end |