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

Incluye:
Threaded::Lifecycle
Incluido en:
Mongoid::Association::Embedded::EmbedsMany
Definido en:
lib/mongoid/associación/embebidos/embeds_many/buildable.rb

Overview

Clase builder para asociaciones embeds_many.

Resumen del método de instancia colapsar

Detalles del método de instancia

#build(base, object, _tipo = nil, campos_seleccionados = nil) ⇒ Array<Document ] 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 (string)

    No se utiliza en este contexto.

  • selected_fields (encriptada) (valor por defecto: nil)

    Campos que fueron recuperados mediante #only. Si se especifican selected_fields, los campos que no estén listados en él no estarán accesibles en los documentos compilados.

Devuelve:

  • (arreglo<Documento ] Los documentos.)

    arreglo<documento ] Los documentos.



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

def compilar(base, Objeto, _type = nulo, selected_fields = 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, selected_fields, execute_callbacks: false))
    else
      docs.push(Fábrica.compilar(klass, attrs))
    end
  end
  docs
end