Clase: Mongoid::Association::Embedded::EmbedsOne::Proxy

Hereda:
Uno
  • Objeto
Mostrar todo
Definido en:
lib/mongoid/association/embedded/embeds_one/proxy.rb

Overview

Proxy transparente para asociaciones embeds_one. Se devuelve una instancia de esta clase al llamar al método getter de asociación en el documento padre. Esta clase hereda de Mongoid::Association::Proxy y reenvía la mayoría de sus métodos al objetivo de la asociación, es decir, al documento hijo.

Resumen de constantes colapsar

VALID_OPTIONS =

Las opciones válidas al definir esta asociación.

Devuelve:

  • (arreglo<Symbol>)

    Las opciones permitidas al definir esta asociación.

%i[
  compilación automática
  como
  Cascade_callbacks
  cíclico
  store_as
].freeze

Resumen del método de clase colapsar

Resumen del método de instancia colapsar

Métodos heredados de One

#__evolve_object_id__, #clear, #in_memory, #respond_to?

Detalles del Constructor

#initialize(base, target, association) ⇒ Proxy

Crea una nueva asociación embeds_one.

Ejemplos:

Crea el nuevo proxy.

One.new(person, name, association)

Parámetros:



33
34
35
36
37
38
39
40
41
42
# Archivo 'lib/mongoid/association/embedded/embeds_one/proxy.rb', línea 33

def inicializar(base, Objetivo, asociación)
  super hacer
    characterize_one(_target)
    bind_one
    characterize_one(_target)
    update_attributes_hash(_target)
    _target.guardar si ¿persistente?
    _base._reset_memoized_descendants!
  end
end

Detalles del método de clase

.eager_loader(asociaciones, docs) ⇒ Mongoid::Asociación::Incrustado::Eager

Devuelve el cargador entusiasta para esta asociación.

Parámetros:

  • asociaciones (Array<Mongoid::Association>)

    Las asociaciones que se cargarán con entusiasmo

  • docs (arreglo<Mongoid::Document>)

    Los documentos principales que cuentan con las asociaciones dadas, que deberían ser completadas por los documentos precargados.

Devuelve:



190
191
192
# Archivo 'lib/mongoid/association/embedded/embeds_one/proxy.rb', línea 190

def eager_loader(asociaciones, docs)
  Entusiasta.Nuevo(asociaciones, docs)
end

.¿incrustado?true

Devuelve true si la asociación es una asociación embebida. En este caso, siempre es verdadero.

Ejemplos:

¿Está esta asociación incrustada?

Association::Embedded::EmbedsOne.embedded?

Devuelve:

  • (cierto)

    verdadero.



201
202
203
# Archivo 'lib/mongoid/association/embedded/embeds_one/proxy.rb', línea 201

def ¿Incorporado?
  true
end

.camino(documento) ⇒ Mongoid::Atomic::Paths::Embedded::One

Obtén la calculadora de rutas para el documento suministrado.

Ejemplos:

Obtén la calculadora de rutas.

Proxy.path(document)

Parámetros:

  • Documento (documento)

    El documento sobre el que calcular.

Devuelve:



214
215
216
# Archivo 'lib/mongoid/association/embedded/embeds_one/proxy.rb', línea 214

def ruta(Documento)
  Mongoid::Atómico::Rutas::Embedded::Uno.Nuevo(Documento)
end

Detalles del método de instancia

#substitute(replacement) ⇒ Documento | nil

Sustituye los documentos de destino proporcionados por el documento existente en la asociación.

Ejemplos:

Sustituya el nuevo documento.

person.name.substitute(new_name)

Parámetros:

  • reemplazo (Documento | Hash)

    Un documento para reemplazar el objetivo.

Devuelve:

  • (Document | nil)

    La asociación o nula.



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# Archivo 'lib/mongoid/association/embedded/embeds_one/proxy.rb', línea 53

def sustituir(reemplazo)
  return sí mismo si reemplazo == sí mismo

  si ¿_asignando?
    _base.add_atomic_unset(_target) a menos que reemplazo
  else
    update_target_when_not_assigning(reemplazo)
  end

  unbind_one

  return nulo si replace_with_nil_document(reemplazo)

  reemplazar_con(reemplazo)

  sí mismo
end