Clase: Mongoid::Asociación::Referenciado::TieneMuchos

Hereda:
Objeto
  • Objeto
Mostrar todo
Incluye:
Construible, con criterios polimórficos, Mongoid::Asociación::Relacionable
Definido en:
lib/mongoid/association/referenced/has_many.rb,
lib/mongoid/association/referenced/has_many/eager.rb,
lib/mongoid/association/referenced/has_many/proxy.rb,
lib/mongoid/association/referenced/has_many/binding.rb,
lib/mongoid/association/referenced/has_many/buildable.rb,
lib/mongoid/association/referenced/has_many/enumerable.rb

Overview

La asociación has_many.

Definido en el espacio de nombres

Modules: Construible Clases: Vinculante, ansioso, enumerable, proxy

Colapso delresumen constante

OPCIONES DE ASOCIACIÓN =

Las opciones disponibles para este tipo de asociación, además de las comunes.

Devuelve:

  • (Matriz<Símbolo><Symbol>)

    Las opciones extra válidas.

[
    :después de agregar,
    :después de eliminar,
    :como,
    :autosave,
    :antes_de_agregar,
    :antes_de_eliminar,
    :dependiente,
    :clave externa,
    :orden,
    :clave_principal,
    :alcance,
].freeze
VALID_OPTIONS =

La lista completa de opciones válidas para esta asociación, incluidas las compartidas.

Devuelve:

  • (Matriz<Símbolo><Symbol>)

    Las opciones válidas.

(OPCIONES DE ASOCIACIÓN + OPCIONES_COMPARTIDAS).freeze
SUFIJO DE CLAVE EXTRANJERA =

El sufijo de clave externa predeterminado.

Devuelve:

  • (Cadena) -

    '_identificación'

'_id'.freeze

Constantes incluidas de Mongoid::Association::Relatable

Mongoid::Asociación::Relacionable::CLAVE_PRIMARIA_POR_DETECCIÓN, Mongoid::Asociación::Relacionable::OPCIONES_COMPARTIDAS

Resumen de atributos de instancia

Atributos incluidos de Mongoid::Association::Relatable

#nombre, #opciones, #inclusiones_principales

Colapso del resumen del método de instancia

Métodos incluidos en WithPolymorphicCriteria

#con_criterio_polimórfico

Métodos incluidos en Buildable

#construir

Métodos incluidos de Mongoid::Association::Relatable

#==, #counter_cache_column_name, #create_relation, #destructive?, #extension, #foreign_key_check, #foreign_key_setter, #get_callbacks, #in_to?, #initialize, #inverse, #inverse_association, #inverse_class, #inverse_class_name, #inverse_setter, #inverse_type, #inverse_type_setter, #inverses, #key, #many?, #one?, #relation_class, #relation_class_name, #setter, #type_setter, #validate?

Métodos incluidos en Opciones

#as, #autobuilding?, #autosave, #cascading_callbacks?, #counter_cached?, #cyclic?, #dependent, #forced_nil_inverse?, #índice?, #inverse_of, #order, #primary_key, #store_as, #touch_field, #touchable?

Métodos incluidos de Constrangible

#convertir_a_clave_extranjera

Detalles del método de instancia

#add_polymorphic_criterion(criteria, object_class) ⇒ Mongoid::Criteria

Obsoleto.

en 9.0.x

Agregue criterios de consulta polimórficos a un objeto Criterios, si esta asociación es

polymorphic.

Parece que este método es un artefacto remanente de una refactorización que lo renombró como "with_polymorphic_criterion" y lo hizo privado. En cualquier caso, no se hace referencia a este método en ningún otro lugar y es poco probable que sea útil para clientes externos. Deberíamos eliminarlo.

Parámetros:

  • criterios (Mongoid::Criterios)

    El objeto de criterios a añadir.

  • object_class (Clase) -

    La clase de objeto.

Devuelve:



142
143
144
145
146
147
148
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 142

def añadir criterio polimórfico(criterios, object_class)
  Si polimórfico?
    criterios.donde(tipo => object_class.Nombre)
  else
    criterios
  end
end

#enlazable?(doc) ⇒ verdadero | falso

Si intentar vincular un objeto mediante esta asociación debería generar un error.

Parámetros:

  • doc (Documento) -

    El documento que se va a encuadernar.

Devuelve:

  • (verdadero | falso)

    Si el documento se puede encuadernar.



164
165
166
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 164

def ¿vinculable?(doc)
  forced_nil_inverse? || (!!inverso && doc.campos.claves.¿incluir?(clave externa))
end

# criterios(base) ⇒ Mongoide::Criterios

Los criterios utilizados para consultar esta asociación.

Devuelve:



116
117
118
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 116

def criterios(base)
  query_criteria(base.Enviar(clave_primaria), base)
end

#¿incrustado?falso

¿Este tipo de asociación está integrado?

Devuelve:

  • (FALSO) -

    Siempre falso.



94
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 94

def ¿incorporado?; false; end

#foreign_keyString

Obtenga el campo de clave externa en la inversa para guardar la referencia de asociación.

Devuelve:

  • (Cadena) -

    El campo de clave externa en la inversa para guardar la referencia de asociación.



86
87
88
89
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 86

def clave externa
  @clave_extranjera ||= @opciones[:clave externa] ? @opciones[:clave externa].a_s :
                     campo de clave externa predeterminado
end

#nested_builder(atributos, opciones) ⇒ Asociación::Anidado::Muchos

El objeto constructor anidado.

Parámetros:

  • atributos (Hash)

    Los atributos a utilizar para construir el objeto de asociación.

  • opciones (Hash)

    Las opciones para la asociación.

Devuelve:



174
175
176
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 174

def constructor anidado(atributos, opciones)
  Anidado::Muchos.Nuevo(yo, atributos, opciones)
end

#ruta(documento) ⇒ Raíz

Obtenga la calculadora de ruta para el documento proporcionado.

Ejemplos:

Obtén la calculadora de rutas.

Proxy.path(document)

Parámetros:

  • Documento (Documento) -

    El documento sobre el que se realizará el cálculo.

Devuelve:

  • (Raíz) -

    La calculadora de ruta atómica raíz.



186
187
188
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 186

def ruta(Documento)
  Mongoid::Atómico::Caminos::Raíz.Nuevo(Documento)
end

#¿polimórfico?verdadero | falso

¿Esta asociación es polimórfica?

Devuelve:

  • (verdadero | falso)

    Si esta asociación es polimórfica.



154
155
156
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 154

def polimórfico?
  @polimórfico ||= !!como
end

#relaciónAssociation::HasMany::Proxy

Obtenga la clase de proxy de asociación para este tipo de asociación.

Devuelve:

  • (Asociación::HasMany::Proxy)

    La clase proxy.



109
110
111
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 109

def relación
  Apoderado
end

#complementos_de_relaciónMatriz

La lista de complementos de la asociación.

Devuelve:

  • (Matriz)

    La asociación complementa.



53
54
55
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 53

def relación_complementos
  @relation_complements ||= [ Referenciado::Pertenece a ].freeze
end

#scopeProc | Symbol | nil

Obtenga el alcance que se aplicará al consultar la asociación.

Devuelve:

  • (Proc | Symbol | nil)

    El ámbito de la asociación, si la hubiera.



193
194
195
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 193

def ámbito de aplicación
  @opciones[:alcance]
end

#¡configuración!yo mismo

Configure los métodos de instancia, campos, etc. en la clase propietaria de la asociación.

Devuelve:

  • (ser)


60
61
62
63
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 60

def setup!
  ¡métodos_de_instancia_de_configuración!
  yo
end

#métodos_de_instancia_de_configuración!self

Configure los métodos de instancia en la clase que tenga este tipo de asociación.

Devuelve:

  • (ser)


68
69
70
71
72
73
74
75
76
77
78
79
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 68

def ¡métodos_de_instancia_de_configuración!
  define_getter!
  ¡define_ids_getter!
  define_setter!
  ¡define_ids_setter!
  ¡defina_verificación_de_existencia!
  define_autosaver!
  ¡organismo polimorfo!
  ¡define_dependencia!
  @propietario_clase.valida_asociado(Nombre) Si validate?
  yo
end

#¿almacena_clave_externa?verdadero

¿Este tipo de asociación almacena la clave externa?

Devuelve:

  • (verdadero) -

    Siempre verdadero.



104
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 104

def ¿almacena_clave_extranjera?; false; end

#typeString | nil

Nota:

Sólo relevante para asociaciones polimórficas.

El tipo de esta asociación si es polimórfica.

Devuelve:

  • ( Cadena| nulo ) —

    El campo tipo.



125
126
127
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 125

def tipo
  @tipo ||= "#{como}_tipo" Si polimórfico?
end

#validation_defaulttrue

El valor predeterminado para la validación del objeto de asociación.

Devuelve:

  • (verdadero) -

    Siempre verdadero.



99
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 99

def validation_default; true; end