Módulo: Mongoid::Association::Accessors
- Ampliado por:
- ActiveSupport::Preocupación
- Incluido en:
- Mongoid::Asociación
- Definido en:
- lib/mongoid/association/accessors.rb
Overview
Este módulo contiene todo el comportamiento relacionado con el acceso a las asociaciones a través de los getters y setters, y cómo delegar a los constructores para crear otras nuevas.
Colapso del resumen del método de instancia
-
#__build__(name, object, association, selected_fields = nil) ⇒ Proxy
Crea el documento relacionado y crea la asociación a menos que el documento sea nulo, en cuyo caso establece la asociación en este documento.
-
#create_relation(objeto, Association, selected_fields = nil) ⇒ Proxy
Crear una asociación a partir de un objeto y metadatos de asociación.
-
#reset_relation_criteria(nombre) ⇒ Objeto
Restablece los criterios dentro del proxy de asociación.
-
#set_relation(nombre, relación) ⇒ Proxy
Establezca la asociación proporcionada en una variable de instancia en la clase con el nombre proporcionado.
Detalles del método de instancia
#__build__(nombre, objeto, asociación, campos_seleccionados = nulo) ⇒ Proxy
Crea el documento relacionado y crea la asociación a menos que el documento sea nulo, en cuyo caso establece la asociación en este documento.
27 28 29 30 |
# Archivo 'lib/mongoid/association/accessors.rb', línea 27 def __construir__(Nombre, Objeto, asociación, campos seleccionados = nulo) relación = crear_relación(Objeto, asociación, campos seleccionados) relación_de_conjunto(Nombre, relación) end |
#create_relation(objeto, asociación, campos_seleccionados = nulo) ⇒ Proxy
Crear 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) clave = @atributos[asociación.inverse_type] tipo = clave ? asociación.resolver.modelo_para(clave) : nulo destino = Si t = asociación.construir(yo, Objeto, tipo, campos seleccionados) asociación.crear_relación(yo, t) else nulo end # Solo es necesario hacer esto en asociaciones integradas. Las devoluciones de llamadas pendientes # solo se agregan al materializar los documentos, lo cual solo ocurre # sobre asociaciones incrustadas. No hay ninguna llamada a la base de datos en el #construcción de una asociación referenciada. Si asociación. Arreglo(destino).cada hacer |doc| doc.intentar(:ejecutar devoluciones de llamadas pendientes) end end destino end |
#reset_relation_criteria(nombre) ⇒ Objeto
Restablece los criterios dentro del proxy de asociación. Se utiliza en asociaciones de varios a varios para mantener sincronizada la matriz de identificadores subyacente.
73 74 75 76 77 |
# Archivo 'lib/mongoid/association/accessors.rb', línea 73 def restablecer criterios de relación(Nombre) Si ¿variable_de_instancia_definida?("@_#{nombre}") 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 relación_de_conjunto(Nombre, relación) conjunto_de_variables_de_instancia("@_#{nombre}", relación) end |