Módulo: Mongoid::Association::Embedded::EmbedsMany::Buildable

Incluye:
Ciclo de vida con subprocesos
Incluido en:
Mongoid::Association::Embedded::EmbedsMany
Definido en:
lib/mongoid/asociación/incrustado/incrustaciones_muchas/construible.rb

Overview

Clase constructora para asociaciones embeds_many.

Colapso del resumen del método de instancia

Detalles del método de instancia

#compilar(base, objeto, type = nil, selected_fields = nil) ⇒ arreglo<Documento ] Los documentos.

Construye el documento a partir de los atributos utilizando los metadatos de asociación proporcionados. Se instancia mediante la fábrica para garantizar que se utilicen las subclases y la asignación, si corresponde. En este caso, se devolverán varios documentos.

Ejemplos:

Construir los documentos.

Builder.new(meta, attrs).build

Parámetros:

  • base (Documento) -

    El objeto base.

  • Objeto (Matriz | Matriz<Hash>)

    El objeto a utilizar para construir la asociación.

  • tipo (Cadena) (predeterminado: nulo)

    No se utiliza en este contexto.

  • campos seleccionados (Hash) (predeterminado: nulo)

    Campos recuperados mediante #only. Si se especifica selected_fields, los campos que no estén incluidos en él no serán accesibles en los documentos generados.

Devuelve:

  • (Array<Documento ] Los documentos.)

    Array<Document ] Los documentos.



30
31
32
33
34
35
36
37
38
39
40
41
42
# Archivo 'lib/mongoid/association/embedded/embeds_many/buildable.rb', línea 30

def construir(base, Objeto, tipo = nulo, campos seleccionados = nulo)
  return [] Si Objeto.blank?
  return Objeto Si Objeto.primera.is_a?(Documento)
  docs = []
  Objeto.cada hacer |attrs|
    Si _¿cargando? && base.¿persistió?
      docs.Push(Fábrica.execute_from_db(klass, attrs, nulo, campos seleccionados, ejecutar_devoluciones de llamada: false))
    else
      docs.Push(Fábrica.construir(klass, attrs))
    end
  end
  docs
end