Clase: Mongoid::Asociación::Referenciado::TieneMuchos
- Hereda:
-
Objeto
- Objeto
- Mongoid::Asociación::Referenciado::TieneMuchos
- 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.
[ :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.
(OPCIONES DE ASOCIACIÓN + OPCIONES_COMPARTIDAS).freeze
- SUFIJO DE CLAVE EXTRANJERA =
El sufijo de clave externa predeterminado.
'_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
-
#add_polymorphic_criterion(criterios, clase_de_objeto) ⇒ Mongoid::Criteria
Obsoleto
Obsoleto.
en 9.0.x
-
#enlazable?(doc) ⇒ verdadero | falso
Si intentar vincular un objeto mediante esta asociación debería generar un error.
-
#criterios(base) ⇒ Mongoid::Criterios
Los criterios utilizados para consultar esta asociación.
-
#¿incrustado? ⇒ falso
¿Este tipo de asociación está integrado?
-
#clave_externa ⇒ Cadena
Obtenga el campo de clave externa en la inversa para guardar la referencia de asociación.
-
#nested_builder(atributos, opciones) ⇒ Asociación::Anidado::Muchos
El objeto constructor anidado.
-
#ruta(documento) ⇒ Raíz
Obtenga la calculadora de ruta para el documento proporcionado.
-
#¿polimórfico? ⇒ verdadero | falso
¿Esta asociación es polimórfica?
-
#relación ⇒ Asociación::TieneMuchos::Proxy
Obtenga la clase de proxy de asociación para este tipo de asociación.
-
#complementos_de_relación ⇒ Matriz<Mongoid::Asociación::Relacionable><Mongoid::Association::Relatable>
La lista de complementos de la asociación.
-
#scope ⇒ Proc | Symbol | nil
Obtenga el alcance que se aplicará al consultar la asociación.
-
#¡configuración! ⇒ yo mismo
Configurar los métodos de instancia, campos, etc.
-
#métodos_de_instancia_de_configuración! ⇒ self
Configure los métodos de instancia en la clase que tenga este tipo de asociación.
-
#¿almacena_clave_externa? ⇒ verdadero
¿Este tipo de asociación almacena la clave externa?
-
#type ⇒ String | nil
El tipo de esta asociación si es polimórfica.
-
#validation_default ⇒ true
El valor predeterminado para la validación del objeto de asociación.
Métodos incluidos en WithPolymorphicCriteria
Métodos incluidos en Buildable
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
Detalles del método de instancia
#add_polymorphic_criterion(criteria, object_class) ⇒ Mongoid::Criteria
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.
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.
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.
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?
94 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 94 def ; false; end |
#foreign_key ⇒ String
Obtenga 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.
174 175 176 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 174 def constructor anidado(atributos, ) Anidado::Muchos.Nuevo(yo, atributos, ) end |
#ruta(documento) ⇒ Raíz
Obtenga la calculadora de ruta para el documento proporcionado.
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?
154 155 156 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 154 def polimórfico? @polimórfico ||= !!como end |
#relación ⇒ Association::HasMany::Proxy
Obtenga la clase de proxy de asociación para este tipo de asociación.
109 110 111 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 109 def relación Apoderado end |
#complementos_de_relación ⇒ Matriz
La lista de complementos de la asociación.
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 |
#scope ⇒ Proc | Symbol | nil
Obtenga el alcance que se aplicará al consultar la asociación.
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.
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.
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?
104 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 104 def ¿almacena_clave_extranjera?; false; end |
#type ⇒ String | nil
Sólo relevante para asociaciones polimórficas.
El tipo de esta asociación si es polimórfica.
125 126 127 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 125 def tipo @tipo ||= "#{como}_tipo" Si polimórfico? end |
#validation_default ⇒ true
El valor predeterminado para la validación del objeto de asociación.
99 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 99 def validation_default; true; end |