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

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

Parámetros:

  • Valor (string)

    La clave discriminadora para configurar.

Aumenta:



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.

Devuelve:

  • (string)

    La clave discriminadora.



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