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
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.
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 |