Módulo: Mongoid::Factory
Overview
Crea instancias de documentos que provienen de la base de datos.
Definido en el espacio de nombres
Clases: Instanciador
Colapso del resumen del método de instancia
-
#build(klass, attributes = nil) ⇒ Document
Construye un nuevo
Documenta partir de los atributos proporcionados. -
#execute_build(klass, atributos = nil, opciones = {}) ⇒ Documento
privada
Ejecute compilar.
-
#ejecutar_desde_db(clase, atributos = nulo, criterios = nulo, campos_seleccionados = nulo, ejecutar_devoluciones_de_llamadas: Threaded.execute_callbacks?) ⇒ Documento
privada
Ejecutar desde_db.
-
#from_db(klass, attributes = nil, criteria = nil, selected_fields = nil) ⇒ Document
Construye un nuevo
Documenta partir de los atributos suministrados cargados desde la base de datos.
Detalles del método de instancia
#build(klass, attributes = nil) ⇒ Document
Construye un nuevo Document a partir de los atributos proporcionados.
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 discriminadora (que es _type por defecto) y el valor del discriminador no corresponde a un descendiente de klass, entonces este método crearía una instancia de klass.
154 155 156 |
# Archivo 'lib/mongoid/factory.rb', línea 154 def construir(klass, atributos = nulo) ejecutar_construcción(klass, atributos) end |
#execute_build(klass, atributos = nil, opciones = {}) ⇒ Documento
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Un 2 error de Ruby.x impide que los hash de opciones se utilicen como argumentos de palabras clave. Una vez que se elimine el soporte para Ruby.x,2 podremos reimplementar los hash de opciones como argumentos de palabras clave. Consulte bugs.ruby-lang.org/issues/15753
Ejecute compilar.
175 176 177 178 179 180 181 182 183 184 |
# Archivo 'lib/mongoid/factory.rb', línea 175 def ejecutar_construcción(klass, atributos = nulo, = {}) atributos ||= {} dvalue = atributos[klass.clave discriminadora] || atributos[klass.clave discriminadora.a_sym] tipo = klass.obtener_mapeo_discriminador(dvalue) Si tipo tipo.documento_de_construcción(atributos, ) else klass.documento_de_construcción(atributos, ) end end |
#ejecutar_desde_db(clase, atributos = nulo, criterios = nulo, campos_seleccionados = nulo, ejecutar_devoluciones_de_llamadas: Threaded.execute_callbacks?) ⇒ Documento
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Ejecutar desde_db.
234 235 236 237 238 239 |
# Archivo 'lib/mongoid/factory.rb', línea 234 def execute_from_db(klass, atributos = nulo, criterios = nulo, campos seleccionados = nulo, ejecutar_devoluciones de llamada: Compacto.¿ejecutar_devoluciones de llamada?) Instanciador.Nuevo(klass, atributos, criterios, campos seleccionados) .instancia(ejecutar_devoluciones de llamada: ejecutar_devoluciones de llamadas) end |
#from_db(klass, attributes = nil, criteria = nil, selected_fields = nil) ⇒ Document
Construye un nuevo Document a partir de los atributos suministrados cargados desde la base de datos.
Si los atributos contienen la clave discriminadora (que es _type por defecto) y el valor del discriminador no corresponde a un descendiente de klass, entonces este método genera un error UnknownModel.
Si se proporciona un objeto de criterios, se utiliza de dos maneras:
-
Si el criterio tiene una lista de campos especificados a través de #only, solo esos campos se llenan en el documento devuelto.
-
Si el criterio tiene una asociación de referencia (es decir, este documento se instancia como una asociación de otro documento), el otro documento también se completa en la asociación inversa del documento devuelto, si existe una.
212 213 214 |
# Archivo 'lib/mongoid/factory.rb', línea 212 def desde_db(klass, atributos = nulo, criterios = nulo, campos seleccionados = nulo) execute_from_db(klass, atributos, criterios, campos seleccionados) end |