Clase: Mongoid::Association::Referenced::HasAndBelongsToMany
- Hereda:
-
Objeto
- Objeto
- Mongoid::Asociación::Referenciada::TieneYPerteneceAMuchos
- Incluye:
- Buildable, Mongoid::Association::Relatable
- Definido en:
- lib/mongoid/association/referenced/has_and_belongs_to_many.rb,
lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb,
lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb,
lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb,
lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb
Overview
La asociación de tipo HasAndBelongsToMany.
Definido bajo Namespace
Modules: Construible clase: Binding, Eager, 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 autosave before_add antes_de_remover counter_cache dependiente foreign_key index orden clave_primaria clave_primaria_inversa clave foránea inversa 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_FIELD_TYPE =
El tipo del campo que contiene la clave foránea.
Arreglo- FOREIGN_KEY_SUFFIX =
El sufijo por defecto de clave foránea.
'_ids'
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
-
#bindable?(doc) ⇒ true | false
Si intentar vincular un objeto mediante esta asociación debe generar un error.
-
#criteria(base, id_list = nil) ⇒ Mongoid::Criteria
Los criterios utilizados para consultar esta asociación.
-
#embedded? ⇒ false
¿Este tipo de asociación está embebido?
-
#forced_nil_inverse? ⇒ true | false
¿Los ID solo se guardan en este lado de la asociación?
-
#foreign_key ⇒ String
Obtenga el campo de clave foránea para guardar la referencia de asociación.
-
#clave_extranjera_inversa ⇒ String
Obtener el campo de clave foránea en la inversa.
-
#inverse_foreign_key_setter ⇒ String
Consiga el setter de clave externa en el inverso.
-
#nested_builder(atributos, opciones) ⇒ Association::Nested::One
El objeto builder anidado.
-
#ruta(documento) ⇒ Raíz
Obtén la calculadora de rutas para el documento suministrado.
-
#relación ⇒ Association::HasAndBelongsToMany::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.
-
#stores_foreign_key? ⇒ true
¿Este tipo de asociación almacena la clave foránea?.
-
#validation_default ⇒ false
El valor por defecto para la validación del objeto de asociación.
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
#cómo, #autocompletando?, #autoguardar, #retrollamadas_en_cascada?, #contadors_cacheados?, #cíclico?, #dependiente, #índice?, #inverso_de, #orden, #polimórfico?, #clave_primaria, #almacenar_como, #campo_toque, #tocable?, #tipo
Métodos incluidos de Constrainable
Detalles del método de instancia
#Se puede vincular?(doc) ⇒ verdadero | falso
Si intentar vincular un objeto mediante esta asociación debe generar un error.
143 144 145 |
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 143 def ¿se puede vincular?(doc) forced_nil_inverse? || (!!inversa && doc.Campos.claves.incluir?(foreign_key)) end |
#criteria(base, id_list = nil) ⇒ Mongoid::Criteria
Los criterios utilizados para consultar esta asociación.
117 118 119 |
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 117 def criterios(base, lista de IDs = nulo) query_criteria(lista de IDs || base.enviar(foreign_key)) end |
#¿integrado? ⇒ false
¿Este tipo de asociación está incrustado?
71 72 73 |
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 71 def false end |
#forced_nil_inverse? ⇒ true | false
¿Solo se guardan los ids en este lado de la asociación?
85 86 87 |
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 85 def forced_nil_inverse? @forced_nil_inverse ||= @options.key?(:inverso_de) && !@options[:inverso_de] end |
#foreign_key ⇒ String
Obtenga el campo de clave foránea para guardar la referencia de asociación.
106 107 108 109 110 111 112 |
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 106 def foreign_key @foreign_key ||= si @options[:foreign_key] @options[:foreign_key].to_s else default_foreign_key_field end end |
#inverse_foreign_key ⇒ String
Obtener el campo de clave foránea en la inversa.
125 126 127 128 129 130 131 132 133 134 135 |
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 125 def clave foránea inversa si @options.key?(:clave_externa_inverse) @options[:clave_externa_inverse] elsif @options.key?(:inverso_de) inverse_of ? "#{inverse_of.to_s.singularize}#{FOREIGN_KEY_SUFFIX}" : nulo elsif inv = asociación inversa&.foreign_key inv else "#{inverse_class_name.demodulize.underscore}#{FOREIGN_KEY_SUFFIX}" end end |
#inverse_foreign_key_setter ⇒ String
Consiga el setter de clave externa en el inverso.
151 152 153 |
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 151 def inverso_establecedor_de_claves_externas @inverse_foreign_key_setter ||= "#{inverse_foreign_key}=" si clave foránea inversa end |
#nested_builder(atributos, opciones) ⇒ Asociación::Anidada::Única
El objeto builder anidado.
161 162 163 |
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 161 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.
173 174 175 |
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 173 def ruta(Documento) Mongoid::Atómico::Rutas::Root (raíz).Nuevo(Documento) end |
#relación ⇒ Association::HasAndBelongsToMany::Proxy
Obtenga la clase proxy de asociación para este tipo de asociación.
99 100 101 |
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 99 def relación Proxy end |
#relation_complements ⇒ Array<Mongoid::Association::Relatable>
La lista de complementos de asociaciones.
56 57 58 |
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 56 def relation_complements @relation_complements ||= [ sí mismo.clase ].freeze end |
#scope ⇒ Proc | Symbol | nil
Obtén el alcance que se aplicará al consultar la asociación.
180 181 182 |
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 180 def Alcance @options[:alcance] end |
#configurar! ⇒ self
Configura los métodos de instancia, campos, etc. en la clase propietaria de la asociación.
63 64 65 66 |
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 63 def setup! setup_instance_methods! sí mismo end |
#stores_foreign_key? ⇒ true
¿Este tipo de asociación almacena la clave externa?
92 93 94 |
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 92 def ¿stores_foreign_key? true end |
#validation_default ⇒ false
El valor por defecto para la validación del objeto de asociación.
78 79 80 |
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many.rb', línea 78 def validation_default true end |