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_*=
Colapso del resumen del método de instancia
-
#discriminator_key=(valor) ⇒ Objeto
privada
Establece la clave discriminadora.
-
#valor_discriminador=(valor) ⇒ Cadena
privada
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 discriminadora.
rubocop:deshabilitar Métricas/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::Clave discriminadora objetivo no válida.Nuevo(yo, superclase) Si ¿hereditario? _tipos claros de mongoid Si valor Mongoid::Campos::Validadores::Macro.validar_nombre_del_campo(yo, valor) valor = valor.a_s ::Mongoid::Traversable.__redefine(yo, '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 a Mongoid. clase << yo delegar :clave_discriminadora, a: ::Mongoid end end # Esta condición verifica si la nueva clave discriminadora se sobrescribirá # un campo existente. # Esta condición también verifica si la clase tiene descendientes, porque # Si no es así, entonces no necesita una clave discriminadora. return Si campos.key?(clave discriminadora) || descendants.¿vacío? default_proc = -> { yo.clase.valor_discriminador } Campo(clave discriminadora, por defecto: default_proc, tipo: String) end |
#valor_discriminador=(valor) ⇒ Cadena
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 _tipos claros de mongoid add_discriminator_mapping(valor) @discriminator_value = valor end |