Clase: Mongoid::Association::Nested::One

Hereda:
Objeto
  • Objeto
Mostrar todo
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

Atributos incluidos en Buildable

#asociación, #atributos, #existente, #opciones

Colapso del resumen del método de instancia

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.

Ejemplos:

Crear una instancia del constructor.

One.new(association, attributes)

Parámetros:

  • asociación (Mongoid::Asociación::Relacionable)

    Los metadatos de la asociación.

  • atributos (Hash)

    Los atributos hash que se intentarán establecer.

  • opciones (Hash)

    Las opciones definidas.



52
53
54
55
56
57
58
# Archivo 'lib/mongoid/association/nested/one.rb', línea 52

def inicializar(asociación, atributos, opciones)
  @atributos = atributos.con_acceso_indiferente
  @asociación = asociación
  @opciones = opciones
  @nombre_de_clase = clase_de(opciones[:nombre_de_clase])
  @destruir = @atributos.borrar(:_destruir)
end

Detalles de los atributos de instancia

#destruirObjeto

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

Nota:

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.

Ejemplos:

Construya un documento anidado 1-1.

one.build(person, as: :admin)

Parámetros:

Devuelve:



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