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

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

Parámetros:

  • valor (Cadena) -

    La clave discriminadora para configurar.

Aumentos:

  • (Errores::InvalidDiscriminatorKeyTarget)


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.

Devuelve:

  • (Cadena) -

    La clave discriminadora.



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