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.

Resumen del método de instancia colapsar

Detalles del método de instancia

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

Compila el documento a partir de los atributos utilizando los metadatos de asociación proporcionados. Se instancia a través de la fábrica para asegurarse de que las subclases y la asignación se utilicen si es adecuado. Este caso devolverá varios documentos.

Ejemplos:

Compila los documentos.

Builder.new(meta, attrs).build

Parámetros:

  • base (documento)

    El objeto base.

  • Objeto (arreglo<Documento> | arreglo<Hash>)

    El objeto que se usará para compilar 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:

  • (arreglo<Documento ] Los documentos.)

    arreglo<documento ] 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 compilar(base, Objeto, tipo = nulo, campos seleccionados = nulo)
  return [] si Objeto.blank?
  return Objeto si Objeto.primero.is_a?(Documento)
  docs = []
  Objeto.cada hacer |attrs|
    si _¿cargando? && base.¿persistió?
      docs.push(Fábrica.execute_from_db(klass, attrs, nulo, campos seleccionados, execute_callbacks: false))
    else
      docs.push(Fábrica.compilar(klass, attrs))
    end
  end
  docs
end