Clase: Mongoid::Asociación::Referenciado::TieneYPerteneceAMuchos::Enlace
- Hereda:
-
Objeto
- Objeto
- Mongoid::Asociación::Referenciado::TieneYPerteneceAMuchos::Enlace
- Incluye:
- Enlazable
- Definido en:
- lib/mongoid/asociación/referenciado/tiene_y_pertenece_a_muchos/binding.rb
Overview
Clase vinculante para todas las asociaciones has_and_belongs_to_many.
Resumen de atributos de instancia
Atributos incluidos desde Bindable
#_association, #_base, #_target
Colapso del resumen del método de instancia
-
#bind_one(doc) ⇒ Objeto
Vincula un solo documento con la asociación inversa.
-
#determinar_asociación_inversa(doc) ⇒ Mongoid::Asociación::Relacionable
Encuentra la asociación inversa dado un documento.
-
#inverse_record_id(doc) ⇒ BSON::ObjectId
Encuentre el id inverso al que hace referencia inverse_keys.
-
#unbind_one(doc) ⇒ Object
Desvincular un solo documento.
Métodos incluidos en Bindable
#enlace, #inicializar
Detalles del método de instancia
#bind_one(doc) ⇒ Objeto
Vincula un solo documento con la asociación inversa. Se usa específicamente al anexar al proxy.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb', línea 20 def bind_one(doc) binding hacer teclas inversas = método de prueba(doc, _asociación.clave externa inversa) a no ser que doc.frozen? Si teclas inversas ID de registro = id de registro inverso(doc) a no ser que teclas inversas.¿incluir?(ID de registro) método de prueba(doc, _asociación.definidor de clave externa inversa, teclas inversas.Push(ID de registro)) end doc.restablecer criterios de relación(_asociación.inverso) end _base._sincronizado[_asociación.clave externa] = true doc._sincronizado[_asociación.clave externa inversa] = true end end |
#determinar_asociación_inversa(doc) ⇒ Mongoid::Asociación::Relacionable
Encuentra la asociación inversa dado un documento.
77 78 79 |
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb', línea 77 def determine_inverse_association(doc) doc.relaciones[_base.clase.Nombre.desmodular.guion bajo.pluralizar] end |
#inverse_record_id(doc) ⇒ BSON::ObjectId
Encuentra el id inverso referenciado por inverse_keys
58 59 60 61 62 63 64 65 66 67 68 69 |
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb', línea 58 def id de registro inverso(doc) Si pk = _asociación.[:clave primaria inversa] _base.Enviar(pk) else asociación inversa = determine_inverse_association(doc) Si asociación inversa _base.__enviar__(asociación inversa.clave_primaria) else _base._id end end end |
#unbind_one(doc) ⇒ Object
Desvincular un solo documento.
39 40 41 42 43 44 45 46 47 48 49 50 |
# Archivo 'lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb', línea 39 def unbind_one(doc) binding hacer _base.Enviar(_asociación.clave externa).delete_one(ID de registro(doc)) teclas inversas = método de prueba(doc, _asociación.clave externa inversa) a no ser que doc.frozen? Si teclas inversas teclas inversas.delete_one(id de registro inverso(doc)) doc.restablecer criterios de relación(_asociación.inverso) end _base._sincronizado[_asociación.clave externa] = true doc._sincronizado[_asociación.clave externa inversa] = true end end |