Clase: Mongoid::Association::Nested::One
- Hereda:
-
Objeto
- Objeto
- Mongoid::Asociación::Anidado::Uno
- Incluye:
- Construible
- Definido en:
- lib/mongoid/asociación/nested/one.rb
Overview
Clase generadora utilizada para ejecutar la asignación del atributo #accepts_nested_attributes_for en asociaciones uno-a-muchos.
Colapso delresumen de atributos de instancia
-
#destruir ⇒ Objeto
Devuelve el valor del atributo destroy.
Atributos incluidos en Buildable
#asociación, #atributos, #existente, #opciones
Colapso del resumen del método de instancia
-
#build(padre) ⇒ Documento
Construye la asociación dependiendo de los atributos y las opciones pasadas a la macro.
-
#inicializar(asociación, atributos, opciones) ⇒ Uno
constructor
Cree el nuevo generador de 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 de 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 @opciones = @nombre_de_clase = clase_de([:nombre_de_clase]) @destruir = @atributos.borrar(:_destruir) end |
Detalles de los atributos de instancia
#destruir ⇒ 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
#build(padre) ⇒ 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.
Construye la asociación dependiendo de los atributos y las opciones pasadas a la 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 construir(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.construir(@nombre_de_clase, atributos)) elsif ¿borrar? padre.Enviar(asociación.setter, nulo) else ¡Verifique si hay violación de identificación! end.grifo { padre.¡Los niños pueden haber cambiado! } end |