Clase: Mongoid::Association::Nested::One
- Hereda:
-
Objeto
- Objeto
- Mongoid::Association::Nested::One
- Incluye:
- Construible
- Definido en:
- lib/mongoid/association/nested/one.rb
Overview
Clase generadora utilizada para ejecutar la asignación del atributo #accepts_nested_attributes_for en asociaciones uno-a-muchos.
Resumen de atributos de la instancia colapsar
-
#destroy ⇒ objeto
Devuelve el valor del atributo destruir.
Atributos incluidos de Buildable
#asociación, #atributos, #existente, #opciones
Resumen del método de instancia colapsar
-
#compilar(parent) ⇒ Documento
Compila la asociación según los atributos y las opciones pasadas al macro.
-
#initialize(association, attributes, opciones) ⇒ One
constructor
Cree el nuevo generador para atributos anidados en asociaciones uno a uno.
Métodos incluidos de Buildable
#allow_destroy?, #convert_id, #reject?, #update_only?
Detalles del Constructor
#initialize(asociación, atributos, opciones) ⇒ Uno
Cree el nuevo generador para atributos anidados en asociaciones uno a uno.
51 52 53 54 55 56 57 |
# Archivo 'lib/mongoid/association/nested/one.rb', línea 51 def inicializar(asociación, atributos, ) @atributos = atributos.con_acceso_indiferente @asociación = asociación @options = @class_name = clase_de([class_name:]) @destruir = @atributos.borrar(:_destroy) end |
Detalles de atributo de instancias
#destroy ⇒ objeto
Devuelve el valor del atributo destruir.
11 12 13 |
# Archivo 'lib/mongoid/association/nested/one.rb', línea 11 def destruir @destruir end |
Detalles del método de instancia
#compilar(parent) ⇒ Documento
Esto intenta realizar 3 operaciones, ya sea una actualización de la asociación existente, un reemplazo de la asociación con un nuevo documento o una eliminación de la asociación.
Compila la asociación según los atributos y las opciones pasadas al macro.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# Archivo 'lib/mongoid/association/nested/one.rb', línea 26 def compilar(padre) return si ¿rechazar?(padre, atributos) @existing = padre.enviar(asociación.Nombre) si update? delete_id(atributos) existente.asignar_atributos(atributos) elsif ¿Reemplazar? padre.enviar(asociación.setter, Fábrica.compilar(@class_name, atributos)) elsif ¿borrar? padre.enviar(asociación.setter, nulo) else check_for_id_violation! end.tocar { padre.es posible que los niños hayan cambiado. } end |