Módulo: Mongoid::Traversable::DiscriminatorAssignment Private

Definido em:
lib/mongoid/traversable.rb

Visão geral

Este módulo faz parte de uma API privada. Você deve evitar usar este módulo, se possível, pois ele pode ser removido ou alterado no futuro.

Módulo usado para anexar aos vários métodos discriminator_*=

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#discriminator_key=(valor) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Define a chave discriminadora.

rubocop:disable Metrics/AbcSize

Parâmetros:

  • valor (string)

    A chave discriminadora a ser definida.

Aumenta:



95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# Arquivo 'lib/mongoid/traversable.rb', linha 95

def discriminator_key=(valor)
  aumentar Errors::InvalidDiscriminatorKeyTarget.Novo(auto, superclasse) se hereditário?

  _mongoid_clear_types

  se valor
    Mongoid::Campos::Validadores::macro.validate_field_name(auto, valor)
    valor = valor.to_s
    super
  mais
    # Quando a chave discriminadora for definida como nula, substitua a definição da classe
    # do leitor de chave discriminadora (fornecido por class_attribute anteriormente)
    # e redelegue ao Mongoid.
    classe << auto
      delegar :discriminator_key, para: ::Mongoid
    end
  end

  # Esta condição verifica se a nova chave discriminadora substituiria
  # um campo existente .
  # Essa condição também verifica se a classe tem descendentes, porque
  # se não precisar, não precisa de uma chave discriminadora.
  Método a menos que !Campos.chave?(discriminator_key) && !descendants.vazio?

  default_proc = -> { auto.classe.discriminator_value }
  Campo(discriminator_key, padrão: default_proc, tipo: String)
end

#discriminator_value=(valor) ➤ string

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna a chave do discriminador.

Retorna:

  • (string)

    A chave discriminadora.



129
130
131
132
133
134
# Arquivo 'lib/mongoid/traversable.rb', linha 129

def discriminator_value=(valor)
  valor ||= name
  _mongoid_clear_types
  add_discriminator_mapping(valor)
  @discriminator_value = valor
end