Módulo: Mongoid::Factory
Overview
Instantiates los documentos que proceden de la base de datos.
Definido bajo Namespace
clase: Instanciador
Resumen del método de instancia colapsar
-
#build(klass, attributes = nil) ⇒ Document
Compila un nuevo
Documentutilizando los atributos suministrados. -
#execute_build(klass, attributes = nil, options = {}) ⇒ Documento
privado
Ejecute compilar.
-
#execute_from_db(klass, atributos = nil, criterios = nil, campos_seleccionados = nil, ejecutar_callbacks: Threaded.ejecutar_callbacks?) ⇒ Documento
privado
Ejecutar desde_db.
-
#from_db(klass, attributes = nil, criteria = nil, selected_fields = nil) ⇒ Document
Construye un nuevo
Documenta partir de los atributos proporcionados cargados desde la base de datos.
Detalles del método de instancia
#build(klass, attributes = nil) ⇒ Document
Compila un nuevo Document utilizando los atributos suministrados.
Este método instancia klass o un descendiente de klass si los atributos incluyen la clave discriminadora de klass.
Si los atributos contienen la clave del discriminador (que por defecto es _type) y el valor del discriminador no corresponde a un descendiente de klass, entonces este método creará una instancia de klass.
154 155 156 |
# Archivo 'lib/mongoid/factory.rb', línea 154 def compilar(klass, atributos = nulo) execute_build(klass, atributos) end |
#execute_build(klass, attributes = nil, options = {}) ⇒ Documento
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Un error en Ruby 2.x impide que el hash de opciones sea argumentos de palabras clave. Una vez que dejemos de dar soporte a Ruby 2.x, podremos reimplementar el hash de opciones como argumentos clave. Consulta https://bugs.ruby-lang.org/issues/15753
Ejecute compilar.
175 176 177 178 179 180 |
# Archivo 'lib/mongoid/factory.rb', línea 175 def execute_build(klass, atributos = nulo, = {}) atributos ||= {} dvalue = atributos[klass.discriminador_clave] || atributos[klass.discriminador_clave.to_sym] tipo = klass.get_discriminator_mapping(dvalue) || klass tipo.construct_document(atributos, ) end |
#execute_from_db(klass, attributes = nil, criteria = nil, selected_fields = nil, execute_callbacks: Threaded.execute_callbacks?) ⇒ documento
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Ejecutar desde_db.
230 231 232 233 234 235 |
# Archivo 'lib/mongoid/factory.rb', línea 230 def execute_from_db(klass, atributos = nulo, criterios = nulo, selected_fields = nulo, execute_callbacks: Con hilo.¿ejecutar_callbacks?) Instanciador.Nuevo(klass, atributos, criterios, selected_fields) .instancia(execute_callbacks: execute_callbacks) end |
#from_db(klass, attributes = nil, criteria = nil, selected_fields = nil) ⇒ Document
Construye un nuevo Document a partir de los atributos proporcionados cargados desde la base de datos.
Si los atributos contienen la clave discriminatoria (que por defecto es _type) y el valor discriminatorio no corresponde a un descendiente de klass, entonces este método genera un error de UnknownModel.
Si se proporciona un objeto de criterios, se utiliza de dos formas:
- Si el criterio tiene una lista de campos especificados a través de #only, solo esos campos se llenan en el documento devuelto.
- Si los criterios tienen una asociación de referencia (es decir, este document se está instanciando como una asociación de otro document), el otro document también se incluye en la asociación inversa del document devuelto, si existe alguna.
208 209 210 |
# Archivo 'lib/mongoid/factory.rb', línea 208 def from_db(klass, atributos = nulo, criterios = nulo, selected_fields = nulo) execute_from_db(klass, atributos, criterios, selected_fields) end |