Clase: Mongoid::Association::Referenced::HasOne::Proxy

Hereda:
Uno
  • Objeto
Mostrar todo
Ampliado por:
ClassMethods
Definido en:
lib/mongoid/association/referenced/has_one/proxy.rb

Overview

Proxy transparente para asociaciones has_one. Se devuelve una instancia de esta clase al llamar al método getter de asociación en el documento sujeto. Esta clase hereda de Mongoid::Association::Proxy y redirige la mayoría de sus métodos al destino de la asociación, es decir, al documento de la colección del lado opuesto que debe estar cargado.

Definido bajo Namespace

Modules: ClassMethods

Resumen del método de instancia colapsar

Métodos incluidos de ClassMethods

eager_loader, embedded?

Métodos heredados de One

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

Detalles del Constructor

#initialize(base, target, association) ⇒ Proxy

Instanciar una nueva asociación references_one. Establecerá la clave externa y la base en el objeto inverso.

Ejemplos:

Crear la nueva asociación.

Referenced::One.new(base, target, association)

Parámetros:



43
44
45
46
47
48
49
50
# Archivo 'lib/mongoid/association/referenced/has_one/proxy.rb', línea 43

def inicializar(base, Objetivo, asociación)
  super hacer
    raise_mixed si klass.¿Incorporado? && !klass.¿cíclico?
    characterize_one(_target)
    bind_one
    _target.guardar si ¿persistente?
  end
end

Detalles del método de instancia

#nullifyobjeto

Remueve la asociación entre el documento base y el documento objetivo borrando la clave foránea y la referencia, dejando huérfano al documento objetivo en el proceso.

Ejemplos:

Anule la asociación.

person.game.nullify


58
59
60
61
# Archivo 'lib/mongoid/association/referenced/has_one/proxy.rb', línea 58

def anular
  unbind_one
  _target.guardar
end

#sustituto(replacement) ⇒ Oferta

Sustituye el documento de destino proporcionado por el documento existente en la asociación. Si el nuevo objetivo es nulo, realice la eliminación necesaria.

Ejemplos:

Reemplazar la asociación.

person.game.substitute(new_game)

Parámetros:

  • reemplazo (Array<documento>)

    El objetivo de reemplazo.

Devuelve:

  • (Uno)

    La asociación.



73
74
75
76
# Archivo 'lib/mongoid/association/referenced/has_one/proxy.rb', línea 73

def sustituir(reemplazo)
  prepare_for_replacement si sí mismo != reemplazo
  HasOne::Proxy.Nuevo(_base, reemplazo, _association) si reemplazo
end