Módulo: Mongoid::Association::Referenced::BelongsTo::Buildable

Incluido en:
Mongoid::Association::Referenced::BelongsTo
Definido en:
lib/mongoid/association/referenced/belongs_to/buildable.rb

Overview

El comportamiento del Builder para asociaciones belongs_to.

Resumen del método de instancia colapsar

Detalles del método de instancia

#build(_base, object, type = nil, selected_fields = nil) ⇒ Document

Este método toma un _id o un objeto y query el lado inverso usando el id o establece el objeto.

Ejemplos:

Compila el documento.

relation.build(meta, attrs)

Parámetros:

  • base (objeto)

    El objeto base.

  • Objeto (objeto)

    El objeto que se usará para compilar la asociación.

  • tipo (string) (valor por defecto: nil)

    El tipo de la asociación.

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

    Debe ser nulo.

Devuelve:



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# Archivo 'lib/mongoid/association/referenced/belongs_to/buildable.rb', línea 21

def compilar(_base, Objeto, tipo = nulo, selected_fields = nulo)
  return Objeto a menos que query?(Objeto)

  # Gestionar el arreglo de la agregación $lookup (devuelve un arreglo incluso para belongs_to)
  si Objeto.is_a?(Arreglo)
    primero = Objeto.primero
    caso primero
    cuando nulo, Mongoid::Documento entonces return primero
    cuando encriptada entonces return Fábrica.execute_from_db(klass, primero, nulo, selected_fields,
                                                  execute_callbacks: false)
    else propagar ArgumentError, 'No se puede crear la asociación belongs_to desde un arreglo'
    end
  end

  # Maneje el hash individual de $lookup con $unwind
  si Objeto.is_a?(encriptada)
    return Fábrica.execute_from_db(klass, Objeto, nulo, selected_fields, execute_callbacks: false)
  end

  ejecutar_consulta(Objeto, tipo)
end