Módulo: Mongoid::Association::Accessors
- Estendido por:
- ActiveSupport::Concern
- Incluído em:
- Mongoid::Associação
- Definido em:
- lib/mongoid/association/accessors.rb
Visão geral
Este módulo contém todo o comportamento relacionado ao acesso de associações por meio de getters e setters, e como delegar a construtores para criar novas.
Recolhimento do Resumo do método de instância
-
#__build__(name, objeto, connection, updated_fields = nil) ➤ Proxy
Constrói o documento relacionado e cria a associação, a menos que o documento seja nulo, então define a associação neste documento.
-
#create_relation(objeto, associação, campos selecionados = nil) ➤ Proxy
Crie uma associação a partir de um objeto e metadados de associação.
-
#reinício_relation_criteria(nome) ➤ Objeto
Redefine os critérios dentro do proxy de associação.
-
#set_relation(nome, relação) ➤ Proxy
Defina a associação fornecida como uma variável de instância na classe com o nome fornecido.
Detalhes do método de instância
#__build__(name, objeto, connection, updated_fields = nil) ➤ Proxy
Constrói o documento relacionado e cria a associação, a menos que o documento seja nulo, então define a associação neste documento.
27 28 29 30 |
# Arquivo 'lib/mongoid/association/accessors.rb', linha 27 def __build__(name, objeto, associação, campos_selecionados = nada) relação = create_relation(objeto, associação, campos_selecionados) set_relation(name, relação) end |
#create_relation(objeto, associação, campos selecionados = nil) ➤ Proxy
Crie uma associação a partir de um objeto e metadados de associação.
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# Arquivo 'lib/mongoid/association/accessors.rb', linha 44 def create_relation(objeto, associação, campos_selecionados = nada) chave = @attributes[associação.inverse_type] type = chave ? associação.resolvedor.model_for(chave) : nada Alvo = se t = associação.COMPILAR(auto, objeto, type, campos_selecionados) associação.create_relation(auto, t) mais nada end # Só precisa fazer isso em associações incorporadas. As chamadas de resposta pendentes # só são adicionados ao materializar os documentos, o que só acontece # em associações incorporadas. Não há chamada para o banco de dados de dados no # construção de uma associação referenciada. se associação. Array(Alvo).cada fazer |doc| doc.tentar(:run_pending_callbacks) end end Alvo end |
#reinício_relation_criteria(nome) ➤ Objeto
Redefine os critérios dentro do proxy de associação. Usado por associações de muitos para muitos para manter a array de ids subjacente sincronizada.
73 74 75 76 77 |
# Arquivo 'lib/mongoid/association/accessors.rb', linha 73 def reinício_relation_criteria(name) se instance_variable_definido?("@_#{name}") enviar(name).reinício_unloaded end end |
#set_relation(nome, relação) ➤ Proxy
Defina a associação fornecida como uma variável de instância na classe com o nome fornecido. Usado como assistente apenas para limpeza do código.
89 90 91 |
# Arquivo 'lib/mongoid/association/accessors.rb', linha 89 def set_relation(name, relação) instance_variable_set("@_#{name}", relação) end |