Módulo: Mongoid::Association

Estendido por:
ActiveSupport::Concern
Inclui:
Acessores, Construtores, Dependendo, Incorporado::Cyclic, macros, Referenciado::AutoSave, Referenciado::CounterCache, Referenciado::Syncable, Reflections
Incluído em:
Componível
Definido em:



























































lib/mongoid/association.rb , lib/mongoid/association/one.rb, lib/mongoid/association/many.rb, lib/mongoid/association/eager.rb, lib/mongoid/association/proxy.rb, lib/ mongoid/association/macro mongoid/association/accessors.rb, lib/mongoid/association/depending.rb, lib/mongoid/association/relatable.rb, lib/mongoid/association/nested/one.rb, lib/mongoid/association/marshlable.rb, lib/mongoid/association/nested/many.rb, lib/mongoid/association/reflections.rb, lib/mongoid/association/constrainable.rb, lib/mongoid/association/eager_loadable.rb, lib/mongoid/association/embedded/ deseja.rb, lib/mongoid/association/embedded/cycle.rb, lib/mongoid/association/embedded/batchable.rb, lib/mongoid/association/referenced/has_one.rb, lib/mongoid/association/embedded/embeds_one. rb, lib/mongoid/association/referenced/has_many.rb, lib/mongoid/association /referenced/syncable.rb, lib/mongoid/association/embedded/embedded_in.rb, lib/mongoid/association/embedded/embeds_many.rb, lib/mongoid/association/referenced/auto_save.rb, lib/mongoid/association/referenced /belongs_to.rb, lib/mongoid/association/nested/nested_buildable.rb, lib/mongoid/association/referenced/counter_cache.rb, lib/mongoid/association/referenced/has_one/eager.rb, lib/mongoid/association/referenced /has_one/proxy.rb, lib/mongoid/association/embedded/embeds_one/proxy.rb, lib/mongoid/association/referenced/has_many/eager.rb, lib/mongoid/association/referenced/has_many/proxy.rb, lib /mongoid/association/embedded/embedded_in/proxy.rb, lib/mongoid/association/embedded/embeds_many/proxy.rb, lib/mongoid/association/referenced/has_one/binding.rb, lib/mongoid/association/embedded/embeds_one /binding.rb, lib/mongoid/association/referenced/belongs_to/eager.rb, lib/mongoid/association/referenced/belongs_to/proxy.rb, lib/mongoid/association/referenced/has_many/binding.rb, lib/mongoid /asso ciation/embedded/embedded_in/binding.rb, lib/mongoid/association/embedded/embedded/binding.rb, lib/mongoid/association/referenced/has_one/buildable.rb, lib/mongoid/association/embedded/embeds_one/buildable. rb, lib/mongoid/association/referenced/belongs_to/binding.rb, lib/mongoid/association/referenced/has_many/buildable.rb, lib/mongoid/association/embedded/embedded_in/buildable.rb, lib/mongoid/association/ embedded/embeds_many/buildable.rb, lib/mongoid/association/referenced/has_many/enumerable.rb, lib/mongoid/association/referenced/belongs_to/buildable.rb, lib/mongoid/association/referenced/has_and_belongs_to_many.rb, lib/ mongoid/association/referenced/with_polymorphic_criteria.rb, lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb, lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb, lib/mongoid/association/referenced/has_and_belongs_to_many/binding. rb, lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb

Visão geral

Módulo Mixin que adiciona comportamento de associação a um document Mongoid . Adiciona métodos como #embedded? que indicam o estado de associação relativa de um document.

Definido sob namespace

Módulos: Acessores, Bindable, Construtores, Constrainable, Dependendo, EagerLoadable, Incorporado, Macs, Em ordem, Aninhado, Opções, Referenciado, Reflexões, Classes relacionais : Eager, Muitos, Um, Proxy

Colapsode resumo constante

MACRO_MAPPING =

Mapeie as macros para suas classes de associação correspondentes.

Retorna:

  • (Hash)

    O mapeamento de macros para sua classe de associação.

{
  embeds_one: associação::Embedded::Incorpora um,
  incorpora_many: associação::Embedded::Incorpora muitos,
  embedded_in: associação::Embedded::Incorporado em,
  has_one: associação::Referenciado::Tem um,
  has_many: associação::Referenciado::Tem muitos,
  has_and_belongs_to_many: associação::Referenciado::Tem e pertence a muitos,
  requires_to: associação::Referenciado::Pertence a
}.congelar

Constantes incluídas de Dependendo

Dependendo::estratégias

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de instância

Métodos incluídos de Reflexões

#reflect_on_all_association, #reflect_on_association

Métodos incluídos de macros

#associations

Métodos incluídos dos Construtores

define_builder!, define_creater!

Métodos incluídos de Dependendo

#apply_destroy_dependencies!, define_dependency!, valide!

Métodos incluídos dos acessadores

#__build__, #create_relation, define_builder!, define_creater!, define_existence_check!, define_getter!, define_ids_getter!, define_ids_setter!, define_setter!, #reset_relation_criteria, #set_relation

Métodos incluídos do Referenced::Syncable

#_syncable?, #_synced, #_synced?, #remove_inverse_keys, #update_inverse_keys

Métodos incluídos do Referenced::CounterCache

define_callbacks!, #reset_counters

Métodos incluídos do Referenced::AutoSave

#__autosaving__, #autosaved?, #changed_for_autosave?, define_autosave!

Detalhes do atributo da instância

#_association ➤ Object

Retorna o valor do atributo _association.



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

def _association
  @_association
end

Detalhes do método de instância

#association_nameSímbolo

Obtenha o nome da associação para este document. Se nenhuma associação tiver sido definida, um erro será gerado.

Exemplos:

Obtenha o nome da associação.

document.association_name

Retorna:

  • (Símbolo)

    O nome da associação.

Aumenta:



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

def association_name
  aumentar Errors::NoMetadata.Novo(auto.classe.name) a menos que _association

  _association.name
end

#incorporado?verdadeiro | false

Determine se o documento em si está incorporado em outro documento por meio dos canais apropriados. (Se tiver um documento pai.)

Exemplos:

O documento está incorporado?

address.embedded?

Retorna:

  • (verdadeiro | falso)

    Verdadeiro se o documento tiver um documento pai .



63
64
65
# Arquivo 'lib/mongoid/association.rb', linha 63

def incorporado?
  @embedded ||= (cíclica ? _parent.presente? : auto.classe.incorporado?)
end

#embedded_many?verdadeiro | false

Determine se o documento faz parte de uma associação embeds_many.

Exemplos:

O documento em uma incorporação tem muitos?

address.embedded_many?

Retorna:

  • (verdadeiro | falso)

    Verdadeiro se em um incorporar muitos.



73
74
75
# Arquivo 'lib/mongoid/association.rb', linha 73

def embedded_many?
  _association && _association.is_a?(associação::Embedded::Incorpora muitos)
end

#embedded_one?verdadeiro | false

Determine se o documento faz parte de uma associação embeds_one.

Exemplos:

O documento está incorporado?

address.embedded_one?

Retorna:

  • (verdadeiro | falso)

    Verdadeiro se estiver incorporado em um.



83
84
85
# Arquivo 'lib/mongoid/association.rb', linha 83

def embedded_one?
  _association && _association.is_a?(associação::Embedded::Incorpora um)
end

#referenced_many?verdadeiro | false

Determine se o documento faz parte de uma associação reference_many.

Exemplos:

O documento em referências é muitos?

post.referenced_many?

Retorna:

  • (verdadeiro | falso)

    Verdadeiro se em muitas referências.



108
109
110
# Arquivo 'lib/mongoid/association.rb', linha 108

def referenced_many?
  _association && _association.is_a?(associação::Referenciado::Tem muitos)
end

#referenced_one?verdadeiro | false

Determine se o documento faz parte de uma associação reference_one.

Exemplos:

O documento está em uma referência?

address.referenced_one?

Retorna:

  • (verdadeiro | falso)

    Verdadeiro se em uma referência.



118
119
120
# Arquivo 'lib/mongoid/association.rb', linha 118

def referenced_one?
  _association && _association.is_a?(associação::Referenciado::Tem um)
end

#reload_relations ➤ Hash

Método de conveniência para iterar pelas associações carregadas e recarregá-las.

Exemplos:

Recarregue as associações.

document.reload_relations

Retorna:

  • (Hash)

    Os metadados da associação.



129
130
131
132
133
134
135
# Arquivo 'lib/mongoid/association.rb', linha 129

def reload_relations
  relações.cada_pair fazer |name, _meta|
    próximo a menos que instance_variable_definido?("@_#{name}")

    remove_instance_variable("@_#{name}") se _parent.nada? || instance_variable_get("@_#{name}") != _parent
  end
end