Clase: Mongoid::Association::Referenced::BelongsTo::Binding
- Hereda:
-
Objeto
- Objeto
- Mongoid::Asociación::Referenciado::Pertenece a::Enlace
- Incluye:
- Enlazable
- Definido en:
- lib/mongoid/association/referenced/belongs_to/binding.rb
Overview
Clase de enlace para asociaciones belongs_to.
Resumen del atributo de la instancia
Atributos incluidos desde Bindable
#_association, #_base, #_target
Resumen del método de instancia colapsar
-
#bind_one ⇒ Objeto
Vincula el objeto base a la inversa de la asociación.
-
#unbind_one ⇒ objeto
Desvincula el objeto base y el inverso, causado por establecer la referencia en nil.
Métodos incluidos de Bindable
Detalles del método de instancia
#bind_one ⇒ objeto
Vincula el objeto base a la inversa de la asociación. Esto es para que seamos referenciados a los objetos reales en ambos lados.
Este caso establece la asociación tanto en el objeto inverso como en el propio documento.
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# Archivo 'lib/mongoid/association/referenced/belongs_to/binding.rb', línea 22 def bind_one binding hacer check_polymorphic_inverses!(_objetivo) vincular_foreign_key(_base, record_id(_objetivo)) # establecer el tipo inverso (por ejemplo, "#{name}_type") para nuevas asociaciones polimórficas si _association.inverse_type && !_base.frozen? llave = _association.resolver.default_key_for(_objetivo) bind_polymorphic_inverse_type(_base, llave) end si inversa = _association.inversa(_objetivo) si set_base_association si _base.referenced_many? _objetivo.__send__(inversa).push(_base) else eliminar_asociado(_objetivo) _objetivo.establecer_relación(inversa, _base) end end end end end |
#desvincular_uno ⇒ Objeto
Desvincula el objeto base y el inverso, causado por establecer la referencia en nil.
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# Archivo 'lib/mongoid/association/referenced/belongs_to/binding.rb', línea 52 def unbind_one binding hacer inversa = _association.inversa(_objetivo) vincular_foreign_key(_base, nulo) bind_polymorphic_inverse_type(_base, nulo) si inversa set_base_association si _base.referenced_many? _objetivo.__send__(inversa).borrar(_base) else _objetivo.establecer_relación(inversa, nulo) end end end end |