Módulo: Mongoid::Association::Accessors
- Ampliado por:
- ActiveSupport::Concern
- Incluido en:
- Mongoid::Association
- Definido en:
- lib/mongoid/association/accessors.rb
Overview
Este módulo contiene todo el comportamiento relacionado con el acceso a las asociaciones mediante los métodos getter y setter, además de cómo delegar a los desarrolladores la creación de nuevas instancias.
Resumen del método de instancia colapsar
-
#__build__(name, object, association, selected_fields = nil) ⇒ Proxy
Compila el documento relacionado y crea la asociación a menos que el documento sea nulo, entonces establece la asociación en este documento.
-
#create_relation(objeto, Association, selected_fields = nil) ⇒ Proxy
Cree una asociación a partir de un objeto y metadatos de asociación.
-
#reset_relation_criteria(name) ⇒ Object
Restablece los criterios dentro del proxy de asociación.
-
#set_relation(nombre, relación) ⇒ Proxy
Establece la asociación proporcionada en una variable de instancia de la clase con el nombre proporcionado.
Detalles del método de instancia
#__build__(nombre, objeto, asociación, campos_seleccionados = nulo) ⇒ Proxy
Compila el documento relacionado y crea la asociación a menos que el documento sea nulo, entonces establece la asociación en este documento.
27 28 29 30 |
# Archivo 'lib/mongoid/association/accessors.rb', línea 27 def compilar(Nombre, Objeto, asociación, campos seleccionados = nulo) relación = crear_relación(Objeto, asociación, campos seleccionados) establecer_relación(Nombre, relación) end |
#create_relation(objeto, association, selected_fields = nil) ⇒ Proxy
Cree una asociación a partir de un objeto y metadatos de asociación.
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# Archivo 'lib/mongoid/association/accessors.rb', línea 44 def crear_relación(Objeto, asociación, campos seleccionados = nulo) llave = @atributos[asociación.inverse_type] tipo = llave ? asociación.resolver.modelo_para(llave) : nulo Objetivo = si t = asociación.compilar(sí mismo, Objeto, tipo, campos seleccionados) asociación.crear_relación(sí mismo, t) else nulo end # Solo es necesario hacer esto en asociaciones embebidas. Las funciones de retorno pendientes # sólo se añaden al materializar los documentos, lo que sólo ocurre # sobre asociaciones integradas. No hay ninguna llamada a la base de datos en el # construcción de una asociación referenciada. si asociación. Arreglo(Objetivo).cada hacer |doc| doc.intentar(:run_pending_callbacks) end end Objetivo end |
#reset_relation_criteria(nombre) ⇒ Objeto
Restablece los criterios dentro del proxy de asociación. Utilizado por asociaciones de muchos-a-muchos para mantener sincronizado el arreglo de IDs subyacente.
73 74 75 76 77 |
# Archivo 'lib/mongoid/association/accessors.rb', línea 73 def reset_relation_criteria(Nombre) si instance_variable_defined?("@_#{name}") enviar(Nombre).reinicio_descargado end end |
#set_relation(nombre, relación) ⇒ Proxy
Establece la asociación proporcionada con una variable de instancia en la clase con el nombre proporcionado. Se usa como ayuda para mantener el código limpio.
89 90 91 |
# Archivo 'lib/mongoid/association/accessors.rb', línea 89 def establecer_relación(Nombre, relación) conjunto_de_variables_de_instancia("@_#{name}", relación) end |