Módulo: Mongoid::Factory
Visão geral
Instancia documentos obtidos no banco de banco de dados.
Definido sob namespace
Classes: Instanciador
Recolhimento do Resumo do método de instância
-
#build(klass, attributes = nil) ⇒ Document
Constrói um novo
Document
a partir dos atributos fornecidos. -
#execute_build(klass, atributos = nil, opções = {}) ➤ Documento
privado
Execute a construção.
-
#execute_from_db(klass, atributos = nil, critérios = nil, selecionados_campos = nil, execute_callbacks: Threaded.execute_callbacks?) ➤ Documento
privado
Executar from_db.
-
#from_db(klass, atributos = nil, critérios = nil, updated_fields = nil) ➤ Documento
Constrói um novo
Document
a partir dos atributos fornecidos carregados do banco de banco de dados.
Detalhes do método de instância
#build(klass, atributos = nil) ➤ Documento
Constrói um novo Document
a partir dos atributos fornecidos.
Este método instancia o klass ou um descendente do klass se os atributos incluírem a chave discriminadora do klass.
Se os atributos contiverem a chave discriminadora (que é _type por padrão) e o valor discriminador não corresponder a um descendente de klass, esse método criará uma instância de klass.
154 155 156 |
# Arquivo 'lib/mongoid/factory.rb', linha 154 def COMPILAR(classe, attributes = nada) execute_build(classe, attributes) end |
#execute_build(klass, atributos = nil, opções = {}) ➤ Documento
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Um bug Ruby 2.x impede que o hash de opções seja argumentos de palavra-chave. Depois de eliminarmos o suporte para Ruby 2.x, podemos reimplementar o hash de opções como argumentos de palavra-chave. Consulte bugs.ruby-lang.org/issues/15753
Execute a construção.
175 176 177 178 179 180 181 182 183 184 |
# Arquivo 'lib/mongoid/factory.rb', linha 175 def execute_build(classe, attributes = nada, = {}) attributes ||= {} dvalue = attributes[classe.discriminator_key] || attributes[classe.discriminator_key.to_sym] type = classe.get_discriminator_mapping(dvalue) se type type.construct_document(attributes, ) mais classe.construct_document(attributes, ) end end |
#execute_from_db(klass, atributos = nil, critérios = nil, selecionados_campos = nil, execute_callbacks: Threaded.execute_callbacks?) ➤ Documento
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Executar from_db.
234 235 236 237 238 239 |
# Arquivo 'lib/mongoid/factory.rb', linha 234 def execute_from_db(classe, attributes = nada, critério = nada, campos_selecionados = nada, execute_callbacks: Threaded.execute_callbacks?) Instanciador.Novo(classe, attributes, critério, campos_selecionados) .instância(execute_callbacks: execute_callbacks) end |
#from_db(klass, attributes = nil, criteria = nil, selected_fields = nil) ⇒ Document
Constrói um novo Document
a partir dos atributos fornecidos carregados do banco de banco de dados.
Se os atributos contiverem a chave discriminadora (que é _type por padrão) e o valor discriminador não corresponder a um descendente de klass, esse método gerará um erro UnknownModel.
Se um objeto de critérios for fornecido, ele será usado de duas maneiras:
-
Se o critério tiver uma lista de campos especificados por meio de #only, somente esses campos serão preenchidos no documento retornado.
-
Se o critério tiver uma associação de referência (ou seja, este documento está sendo instanciado como uma associação de outro documento), o outro documento também será preenchido na associação reversa do documento retornado, se houver.
212 213 214 |
# Arquivo 'lib/mongoid/factory.rb', linha 212 def from_db(classe, attributes = nada, critério = nada, campos_selecionados = nada) execute_from_db(classe, attributes, critério, campos_selecionados) end |