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

Hereda:
Uno
  • Objeto
Mostrar todo
Definido en:
lib/mongoid/asociación/incrustado/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.

Colapso delresumen constante

VALID_OPTIONS =

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

Devuelve:

  • (Matriz<Símbolo><Symbol>)

    Las opciones permitidas al definir esta asociación.

%i[
  autoconstrucción
  como
  Cascade_callbacks
  cíclico
  store_as
].freeze

Constantes heredadas de Proxy

Proxy::KEEPER_METHODS

Resumen del atributo de la instancia

Atributos heredados de Proxy

#_association, #_base, #_target

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?

Métodos heredados de Proxy

apply_ordering, #extend_proxies, #klass, #reset_unloaded, #substitutable

Métodos incluidos de Marshalable

#marshal_dump, #marshal_load

Detalles del constructor

#inicializar(base, destino, asociación) ⇒ 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(_objetivo)
    bind_one
    characterize_one(_objetivo)
    update_attributes_hash(_objetivo)
    _objetivo.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 poseen las asociaciones dadas, que deben ser completados por los documentos cargados con anticipación.

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 se realizará el cálculo.

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

#sustituto(reemplazo) ⇒ Documento | nulo

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:

  • sustitución (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(sustitución)
  return sí mismo si sustitución == sí mismo

  si ¿_asignando?
    _base.add_atomic_unset(_objetivo) a menos que sustitución
  else
    update_target_when_not_assigning(sustitución)
  end

  unbind_one

  return nulo si replace_with_nil_document(sustitución)

  reemplazar_con(sustitución)

  sí mismo
end