Clase: Mongoid::Asociación::Anidado::Muchos

Hereda:
Objeto
  • Objeto
Mostrar todo
Incluye:
Construible
Definido en:
lib/mongoid/asociación/nested/many.rb

Overview

Clase constructora utilizada para realizar la asignación de atributos #accepts_nested_attributes_for en asociaciones de muchos a n.

Resumen 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 = {}) ⇒ Muchos

Cree el nuevo generador de atributos anidados en asociaciones de uno a muchos.

Ejemplos:

Inicializa el constructor.

Many.new(association, attributes, options)

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) (predeterminado: {})

    Las opciones definidas.



50
51
52
53
54
55
56
57
58
59
60
61
# Archivo 'lib/mongoid/association/nested/many.rb', línea 50

def inicializar(asociación, atributos, opciones = {})
  Si atributos.respond_to?(:con_acceso_indiferente)
    @atributos = atributos.con_acceso_indiferente.sort hacer |un(a), b|
      un(a)[0].to_i <=> b[0].to_i
    end
  else
    @atributos = atributos
  end
  @asociación = asociación
  @opciones = opciones
  @nombre_de_clase = opciones[:nombre_de_clase] ? opciones[:nombre_de_clase].constantize : asociación.klass
end

Detalles del método de instancia

#build(padre,opciones = {}) ⇒ Array

Construye la asociación dependiendo de los atributos y las opciones pasadas a la macro.

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.

Ejemplos:

Compila los atributos anidados.

many.build(person)

Parámetros:

  • padre (Documento) -

    El documento matriz de la asociación.

  • opciones (Hash) (predeterminado: {})

    Las opciones.

Devuelve:

  • (Matriz)

    Los atributos.



27
28
29
30
31
32
33
34
35
36
37
38
39
# Archivo 'lib/mongoid/association/nested/many.rb', línea 27

def construir(padre, opciones = {})
  @existente = padre.Enviar(asociación.Nombre)
  Si over_limit?(atributos)
    propagar Errors::TooManyNestedAttributeRecords.Nuevo(existente, opciones[:limit])
  end
  atributos.cada hacer |attrs|
    Si attrs.is_a?(::Picadillo)
      process_attributes(padre, attrs.con_acceso_indiferente)
    else
      process_attributes(padre, attrs[1].con_acceso_indiferente)
    end
  end
end