Clase: Mongoid::Association::Referenced::HasMany
- Hereda:
-
Objeto
- Objeto
- Mongoid::Association::Referenced::HasMany
- 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 bajo Namespace
Modules: Construible clase: Vínculo, Eager, Enumerable, Proxy
Resumen de constantes colapsar
- ASSOCIATION_OPTIONS =
Las opciones disponibles para este tipo de asociación, además de las comunes.
%i[ después_de_agregar after_removal como autosave before_add antes_de_remover dependiente foreign_key orden clave_primaria Alcance ].freeze
- VALID_OPTIONS =
La lista completa de opciones válidas para esta asociación, incluidas las compartidas.
(ASSOCIATION_OPTIONS + OPCIONES_COMPARTIDAS).freeze
- FOREIGN_KEY_SUFFIX =
El sufijo por defecto de clave foránea.
'_id'
Constantes incluidas de Mongoid::Association::Relatable
Mongoid::Association::Relatable::PRIMARY_KEY_DEFAULT, Mongoid::Association::Relatable::SHARED_OPTIONS
Resumen del atributo de la instancia
Atributos incluidos desde Mongoid::Association::Relatable
#name, #options, #owner_class, #parent_inclusions
Resumen del método de instancia colapsar
-
#add_polymorphic_criterion(criterios, clase_de_objeto) ⇒ Mongoid::Criteria
Obsoleto
Obsoleto.
en 9.0.x
-
#bindable?(doc) ⇒ true | false
Si intentar vincular un objeto mediante esta asociación debe generar un error.
-
#criterios(base) ⇒ Mongoid::Criterios
Los criterios utilizados para consultar esta asociación.
-
#embedded? ⇒ false
¿Este tipo de asociación está embebido?
-
#foreign_key ⇒ String
Obtén el campo de clave foránea en la inversa para guardar la referencia de la asociación.
-
#nested_builder(attributes, options) ⇒ Association::Nested::Many
El objeto builder anidado.
-
#ruta(documento) ⇒ Raíz
Obtén la calculadora de rutas para el documento suministrado.
-
#polymorphic? ⇒ true | false
¿Es esta asociación polimórfica?.
-
#relación ⇒ Association::HasMany::Proxy
Obtenga la clase proxy de asociación para este tipo de asociación.
-
#relation_complements ⇒ Array<Mongoid::Association::Relatable>
La lista de complementos de asociaciones.
-
#scope ⇒ Proc | Symbol | nil
Obtén el alcance que se aplicará al consultar la asociación.
-
#setup! ⇒ self
Configura los métodos, campos, etc. de la instancia.
-
#setup_instance_methods! ⇒ self
Configurar los métodos de instancia en la clase que tenga este tipo de asociación.
-
#stores_foreign_key? ⇒ true
¿Este tipo de asociación almacena la clave foránea?.
-
#type ⇒ String | nil
El tipo de esta asociación si es polimórfica.
-
#validation_default ⇒ true
El valor por defecto para la validación del objeto de asociación.
Métodos incluidos de WithPolymorphicCriteria
Métodos incluidos de 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 de 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 Constrainable
Detalles del método de instancia
#add_polymorphic_criterion(criteria, object_class) ⇒ Mongoid::Criteria
en 9.0.x
Agrega criterios de query polimórficos a un objeto Criteria, si esta asociación es polimórfica.
Parece que este método es un artefacto que quedó de una refactorización en la que se renombró a with_polymorphic_criterion y se hizo privado. No obstante, este método no se referencia en ningún otro lugar y es poco probable que sea útil para clientes externos. Deberíamos removerlo.
148 149 150 151 152 153 154 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 148 def add_polymorphic_criterion(criterios, object_class) si polimórfico? criterios.dónde(tipo => object_class.Nombre) else criterios end end |
#Se puede vincular?(doc) ⇒ verdadero | falso
Si intentar vincular un objeto mediante esta asociación debe generar un error.
170 171 172 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 170 def ¿se puede vincular?(doc) forced_nil_inverse? || (!!inversa && doc.Campos.claves.incluir?(foreign_key)) end |
#criterios(base) ⇒ Mongoid::Criteria
Los criterios utilizados para consultar esta asociación.
122 123 124 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 122 def criterios(base) query_criteria(base.enviar(clave_primaria), base) end |
#¿integrado? ⇒ false
¿Este tipo de asociación está incrustado?
94 95 96 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 94 def false end |
#foreign_key ⇒ String
Obtén el campo de clave foránea en la inversa para guardar la referencia de la asociación.
83 84 85 86 87 88 89 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 83 def foreign_key @foreign_key ||= si @options[:foreign_key] @options[:foreign_key].to_s else default_foreign_key_field end end |
#nested_builder(attributes, options) ⇒ Asociación::Anidada::Muchas
El objeto builder anidado.
180 181 182 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 180 def nested_builder(atributos, ) Anidado::Muchos.Nuevo(sí mismo, atributos, ) end |
#ruta(documento) ⇒ Raíz
Obtén la calculadora de rutas para el documento suministrado.
192 193 194 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 192 def ruta(Documento) Mongoid::Atómico::Rutas::Root (raíz).Nuevo(Documento) end |
#polimórfico? ⇒ true | false
¿Es esta asociación polimórfica?
160 161 162 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 160 def polimórfico? @polymorphic ||= !!como end |
#relación ⇒ Association::HasMany::Proxy
Obtenga la clase proxy de asociación para este tipo de asociación.
115 116 117 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 115 def relación Proxy end |
#relation_complements ⇒ Array<Mongoid::Association::Relatable>
La lista de complementos de asociaciones.
51 52 53 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 51 def relation_complements @relation_complements ||= [ Referenciado::BelongsTo ].freeze end |
#scope ⇒ Proc | Symbol | nil
Obtén el alcance que se aplicará al consultar la asociación.
199 200 201 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 199 def Alcance @options[:alcance] end |
#configurar! ⇒ self
Configura los métodos de instancia, campos, etc. en la clase propietaria de la asociación.
58 59 60 61 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 58 def setup! setup_instance_methods! sí mismo end |
#setup_instance_methods! ⇒ self
Configurar los métodos de instancia en la clase que tenga este tipo de asociación.
66 67 68 69 70 71 72 73 74 75 76 77 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 66 def setup_instance_methods! define_getter! define_ids_getter! define_setter! define_ids_setter! definir_comprobación_de_existencia! define_autosaver! ¡polimórfico! define_dependency! @owner_class.valida_asociado(Nombre) si validate? sí mismo end |
#stores_foreign_key? ⇒ true
¿Este tipo de asociación almacena la clave externa?
108 109 110 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 108 def ¿stores_foreign_key? false end |
#type ⇒ String | nil
Solo aplicable a asociaciones polimórficas.
El tipo de esta asociación si es polimórfica.
131 132 133 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 131 def tipo @type ||= "#{as}_type" si polimórfico? end |
#validation_default ⇒ true
El valor por defecto para la validación del objeto de asociación.
101 102 103 |
# Archivo 'lib/mongoid/association/referenced/has_many.rb', línea 101 def validation_default true end |