Módulo: Mongoid::Traversable::DiscriminatorAssignment Privado

Definido en:
lib/mongoid/traversable.rb

Overview

Este módulo es parte de una API privada. Deberías evitar usar este módulo si es posible, ya que puede ser removido o cambiado 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 es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Establece la clave del discriminador.

Parámetros:

  • Valor (string)

    La clave del discriminador que se debe establecer.

Aumenta:



134
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
# Archivo 'lib/mongoid/traversable.rb', línea 134

def discriminator_key=(Valor)
  propagar Errors::InvalidDiscriminatorKeyTarget.Nuevo(sí mismo, superclase) si ¿hereditaria?

  _mongoid_clear_types

  si Valor
    Mongoid::Campos::Validadores::Macro.validate_field_name(sí mismo, Valor)
    Valor = Valor.to_s
    ::Mongoid::Traversable.__redefine(sí mismo, 'discriminator_key', Valor)
  else
    # Cuando la clave del discriminador se establece en nil, sustituye 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, para: ::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 es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve la clave de discriminador.

Devuelve:

  • (string)

    La clave del discriminador.



167
168
169
170
171
172
# Archivo 'lib/mongoid/traversable.rb', línea 167

def discriminator_value=(Valor)
  Valor ||= Nombre
  _mongoid_clear_types
  add_discriminator_mapping(Valor)
  @valor_discriminador = Valor
end