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:



135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
# Arquivo 'lib/mongoid/traversable.rb', linha 135

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
    ::Mongoid::Atravessável.__redefine(auto, 'discriminator_key ', valor)
  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 se 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.



169
170
171
172
173
174
# Arquivo 'lib/mongoid/traversable.rb', linha 169

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