Clase: Mongoid::Association::Nested::Many
- 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 del atributo de la instancia
Atributos incluidos en Buildable
#asociación, #atributos, #existente, #opciones
Resumen del método de instancia colapsar
-
#compilar(parent, options = {}) ⇒ arreglo
Compila la asociación según los atributos y las opciones pasadas al macro.
-
#initialize(asociación, atributos, opciones = {}) ⇒ Muchas
constructor
Crea el nuevo generador para atributos anidados en asociaciones de uno a muchos.
Métodos incluidos en Buildable
#allow_destroy?, #convert_id, #reject?, #update_only?
Detalles del constructor
#initialize(association, attributes, options = {}) ⇒ Muchos
Crea el nuevo generador para 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_indistinto) @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 @options = @class_name = [class_name:] ? [class_name:].constantize : asociación.klass end |
Detalles del método de instancia
#compilar(parent, options = {}) ⇒ arreglo
Compila la asociación según los atributos y las opciones pasadas al 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 compilar(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 |