Clase: Mongoid::Asociación::Anidado::Muchos
- Hereda:
-
Objeto
- Objeto
- Mongoid::Asociación::Anidado::Muchos
- 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
-
#compilar(parent, options = {}) ⇒ arreglo
Construye la asociación dependiendo de los atributos y las opciones pasadas a la macro.
-
#inicializar(asociación, atributos, opciones = {}) ⇒ Muchos
constructor
Cree el nuevo generador de atributos anidados en asociaciones de uno a muchos.
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.
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, = {}) 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 = @nombre_de_clase = [:nombre_de_clase] ? [: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.
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, = {}) @existente = padre.Enviar(asociación.Nombre) Si over_limit?(atributos) propagar Errors::TooManyNestedAttributeRecords.Nuevo(existente, [: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 |