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 destroy.
Atributos incluidos en Buildable
#asociación, #atributos, #existente, #opciones
Resumen del método de instancia colapsar
-
#build(padre) ⇒ 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 en Buildable
#allow_destroy?, #convert_id, #reject?, #update_only?
Detalles del constructor
#inicializar(asociación, atributos, opciones) ⇒ Uno
Cree el nuevo generador para atributos anidados en asociaciones uno a uno.
52 53 54 55 56 57 58 |
# Archivo 'lib/mongoid/association/nested/one.rb', línea 52 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 los atributos de instancia
#destroy ⇒ objeto
Devuelve el valor del atributo destroy.
13 14 15 |
# Archivo 'lib/mongoid/association/nested/one.rb', línea 13 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.
28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# Archivo 'lib/mongoid/association/nested/one.rb', línea 28 def compilar(padre) return si ¿rechazar?(padre, atributos) @existente = padre.enviar(asociación.Nombre) si update? eliminar_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 |