Módulo: Mongoid::Persistable::Multipliable

Estendido por:
ActiveSupport::Concern
Incluído em:
Mongoid::Persistable
Definido em:
lib/mongoid/persistable/multipliable.rb

Visão geral

Define o comportamento para operações $mul.

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#mul(fatores) ➤ Documento

Multiplique os campos fornecidos pelos valores correspondentes. Os valores podem ser positivos ou negativos e, se não existir nenhum valor para o campo , ele será definido como zero.

Exemplos:

Multiplique os campos.

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

Parâmetros:

  • fatores (Hash)

    Os pares de multiplicadores de campo/fator.

Retorna:



21
22
23
24
25
26
27
28
29
30
31
32
33
# Arquivo 'lib/mongoid/persistable/multipliable.rb', linha 21

def mul(fatores)
  prepare_atomic_operation fazer |ops|
    process_atomic_operations(fatores) fazer |Campo, valor|
      fator = valor.is_a?(BigDecimal) ? valor.to_f : valor
      Current = attributes[Campo]
      new_value = (Current || 0) * fator
      process_attribute Campo, new_value se execution_atomicly?
      attributes[Campo] = new_value
      ops[atomic_attribute_name(Campo)] = fator
    end
    { "$mul" => ops } a menos que ops.vazio?
  end
end