Clase: Mongoid::Asociación::Referenciado::Pertenece a::Enlace
- Hereda:
-
Objeto
- Objeto
- Mongoid::Asociación::Referenciado::Pertenece a::Enlace
- Incluye:
- Enlazable
- Definido en:
- lib/mongoid/asociación/referenciada/pertenece_a/binding.rb
Overview
Clase de enlace para asociaciones belong_to.
Resumen de atributos de instancia
Atributos incluidos desde Bindable
#_association, #_base, #_target
Colapso del resumen del método de instancia
-
#bind_one ⇒ Objeto
Vincula el objeto base a la inversa de la asociación.
-
#desvincular_uno ⇒ Objeto
Desvincula el objeto base y el inverso, causado por establecer la referencia en nil.
Métodos incluidos en Bindable
#enlace, #inicializar
Detalles del método de instancia
#bind_one ⇒ objeto
Vincula el objeto base a la inversa de la asociación. Esto permite referenciar a los objetos reales en ambos lados.
Este caso establece la asociación en el objeto inverso así como en el documento mismo.
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 ¡comprueba las inversas polimórficas!(_objetivo) vincular_clave_externa(_base, ID de registro(_objetivo)) # establece el tipo inverso (por ejemplo, "#{name}_type") para nuevas asociaciones polimórficas Si _asociación.inverse_type && !_base.frozen? clave = _asociación.resolver.clave_predeterminada_para(_objetivo) tipo inverso polimórfico de enlace(_base, clave) end Si inverso = _asociación.inverso(_objetivo) Si asociación_base_conjunto Si _base.¿referenciado_muchos? _objetivo.__enviar__(inverso).Push(_base) else eliminar_asociado(_objetivo) _objetivo.relación_de_conjunto(inverso, _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 inverso = _asociación.inverso(_objetivo) vincular_clave_externa(_base, nulo) tipo inverso polimórfico de enlace(_base, nulo) Si inverso asociación_base_conjunto Si _base.¿referenciado_muchos? _objetivo.__enviar__(inverso).borrar(_base) else _objetivo.relación_de_conjunto(inverso, nulo) end end end end |