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
Documenta 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
Documenta 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 https://bugs.ruby-lang.org/issues/15753
Execute a construção.
175 176 177 178 179 180 |
# 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) || classe type.construct_document(attributes, ) 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.
230 231 232 233 234 235 |
# Arquivo 'lib/mongoid/factory.rb', linha 230 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 document está sendo instanciado como uma associação de outro document), o outro document também será preenchido na associação reversa do document retornado, se houver.
208 209 210 |
# Arquivo 'lib/mongoid/factory.rb', linha 208 def from_db(classe, attributes = nada, critério = nada, campos_selecionados = nada) execute_from_db(classe, attributes, critério, campos_selecionados) end |