Classe: Mongoid::Association::Proxy

Herda:
Objeto
  • Objeto
mostrar tudo
Estendido por:
Encaminhável
Inclui:
Empório, Threaded::Lifecycle
Definido em:
lib/mongoid/association/proxy.rb

Visão geral

Essa classe é a superclasse para todos os objetos proxy de associação e contém comportamento comum para todos eles.

Subclasses conhecidas diretas

Muitos, um

Colapsode resumo constante

KEEPER_METHODS =

métodos específicos para evitar que sejam indefinidos

%i[
  enviar
  object_id
  igual?
  respond_to?
  respond_to_missing?
  toque
  public_send
  extend_proxy
  extend_proxies
].congelar

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de classe

Recolhimento do Resumo do método de instância

Métodos incluídos noMarshable

.

Detalhes do construtor

#inicializa(base, destino, associação) {|_auto| ... } ➤ Proxy

Define o destino e as propriedades de metadados de associação.

Parâmetros:

Rendimento:

  • (_auto)

Parâmetros de rendimento:



60
61
62
63
64
# Arquivo 'lib/mongoid/association/proxy.rb', linha 60

def inicializar(base, Alvo, associação)
  @_base, @_target, @_association = base, Alvo, associação
  rendimento(auto) se block_given?
  extend_proxies(associação.extensão) se associação.extensão
end

Detalhes do atributo da instância

#_association ➤ Object

Retorna o valor do atributo _association.



41
42
43
# Arquivo 'lib/mongoid/association/proxy.rb', linha 41

def _association
  @_association
end

#_base ➤ Objeto

Instância de modelo para a base da associação.

Por exemplo, se um Post embeds_many comments, _base será uma instância específica do modelo Post.



39
40
41
# Arquivo 'lib/mongoid/association/proxy.rb', linha 39

def _base
  @_base
end

#_target ➤ Objeto

Instância de modelo para associações de um para um ou array de instâncias de modelo para associações de um para muitos, para o destino da associação.

Por exemplo, se um Post embeds_many comments, _target será uma array de modelos de comentários incorporados em um post específico.



48
49
50
# Arquivo 'lib/mongoid/association/proxy.rb', linha 48

def _target
  @_target
end

Detalhes do método de classe

.apply_ordering(critérios, associação) ➤ Critérios

Aplique a ordem aos critérios se ela tiver sido definida na associação.

Exemplos:

Aplique a ordem.

Proxy.apply_ordering(criteria, association)

Parâmetros:

Retorna:



206
207
208
# Arquivo 'lib/mongoid/association/proxy.rb', linha 206

def apply_ordering(critério, associação)
  associação.order ? critério.order_by(associação.order) : critério
end

Detalhes do método de instância

#extend_proxies(*extensão) ➤ Objeto

Permitir que a extensão seja uma array e estender cada módulo



67
68
69
# Arquivo 'lib/mongoid/association/proxy.rb', linha 67

def extend_proxies(*extensão)
  extensão.achatar.cada { |ext| extend_proxy(ext) }
end

#klassClass

Obtenha a classe da associação ou retorne nulo se nenhuma associação estiver presente.

Exemplos:

Comece a classe.

proxy.klass

Retorna:

  • (Classe)

    A classe de associação.



77
78
79
# Arquivo 'lib/mongoid/association/proxy.rb', linha 77

def classe
  _association&.classe
end

#reinício_unloaded ➤ Objeto

Redefine os critérios dentro do proxy de associação. Usado por muitas associações para manter a array de ids subjacente em sincronia.

Exemplos:

Redefina os critérios de associação.

person.preferences.reset_relation_criteria


86
87
88
# Arquivo 'lib/mongoid/association/proxy.rb', linha 86

def reinício_unloaded
  _target.reinício_unloaded(critério)
end

#substituívelObjeto

O objeto substituível padrão para um proxy de associação é o clone do destino.

Exemplos:

Obtenha o substituível.

proxy.substitutable

Retorna:

  • (Objeto)

    Um clone do alvo.



97
98
99
# Arquivo 'lib/mongoid/association/proxy.rb', linha 97

def substituível
  _target
end