Módulo: Mongoid::Traversable::DiscriminatorAssignment Privado
- Definido en:
- lib/mongoid/traversable.rb
Overview
Este módulo forma parte de una API privada. Debe evitar su uso siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.
Módulo utilizado para anteponer a los diversos métodos discriminator_*=
Resumen del método de instancia colapsar
-
#discriminator_key=(value) ⇒ Objeto
privado
Establece la clave del discriminador.
-
#discriminator_value=(valor) ⇒ String
privado
Devuelve la clave de discriminador.
Detalles del método de instancia
#discriminator_key=(value) ⇒ objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Establece la clave del discriminador.
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 |
# Archivo 'lib/mongoid/traversable.rb', línea 135 def clave_discriminadora=(Valor) propagar Errors::InvalidDiscriminatorKeyTarget.Nuevo(sí mismo, superclase) si ¿hereditaria? _mongoid_clear_types si Valor Mongoid::Campos::Validadores::Macro.validar_nombre_del_campo(sí mismo, Valor) Valor = Valor.to_s ::Mongoid::Traversable.__redefine(sí mismo, 'clave_discriminadora ', Valor) else # Cuando la clave del discriminador se establece en nula, reemplaza la definición de la clase # del lector de clave discriminador (proporcionado antes por class_attribute) # y volver a delegar en Mongoid. clase << sí mismo delegar :discriminator_key, a: ::Mongoid end end # Esta condición comprueba si la nueva clave de discriminador sobrescribiría # un campo existente. # Esta condición también verifica si la clase tiene algún descendiente, porque # if it doesn't, then it doesn't need a discriminator key. return si campos.key?(discriminador_clave) || descendants.¿vacío? default_proc = -> { sí mismo.clase.valor_discriminador } Campo(discriminador_clave, por defecto: default_proc, tipo: String) end |
#discriminator_value=(valor) ⇒ String
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve la clave de discriminador.
169 170 171 172 173 174 |
# Archivo 'lib/mongoid/traversable.rb', línea 169 def valor_discriminador=(Valor) Valor ||= Nombre _mongoid_clear_types add_discriminator_mapping(Valor) @valor_discriminador = Valor end |