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

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.

Ejemplos:

Multiplica los campos.

document.mul(score: 10, place: 1, lives: -10)

Parámetros:

  • factores (encriptada)

    Las parejas campo/factor multiplicador.

Devuelve:



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