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
-
#discriminator_key=(valor) ➤ Objeto
privado
Define a chave discriminadora.
-
#discriminator_value=(valor) ➤ string
privado
Retorna a chave do discriminador.
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
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.
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 |