Módulo: Mongoid::Documento
- Ampliado por:
- ActiveSupport::Preocupación
- Incluye:
- Componibles, Tocables::Métodos de Instancia
- Definido en:
- lib/mongoid/documento.rb
Overview
Este es el módulo base para todos los objetos de dominio que deben persistir en la base de datos como documentos.
Definido en el espacio de nombres
Modules: Métodos de clase
Colapso delresumen constante
- CLAVE_ILEGAL =
Expresión regular para la coincidencia de claves BSON ilegales. Tenga en cuenta que bson 4.1 tiene la constante BSON::String::ILLEGAL_KEY, que debe usarse en su lugar. Cuando se publique el controlador Ruby 2.3.0 y Mongoid se actualice para requerir ≥ 2.3.0, se podrá usar la constante BSON.
/(\A[$])|(\.)/.freeze
Constantes incluidas desde Composable
Composable::MÓDULOS, Composable::NOMBRES_DE_MÉTODOS_RESERVADOS
Constantes incluidas de Interceptable
Interceptable::LLAMADA DE VUELTA
Constantes incluidas desde la Asociación
Constantes incluidas desde Asociación::Dependiente
Asociación::Dependiente::ESTRATEGIAS
Constantes incluidas desde Persistable
Constantes incluidas desde Campos
Campos::Booleano, Campos::IDS, Campos::CLASES_BSON_INVÁLIDAS, Campos::Símbolo_de_cadena, Campos::SFX_DE_TRADUCCIONES, Campos::MAPEO_DE_TIPOS
Constantes incluidas de Atomic
Colapso delresumen de atributos de instancia
-
#__selected_fields ⇒ Objeto
Devuelve el valor del atributo __selected_fields.
-
#nuevo_registro ⇒ Objeto
solo lectura
Devuelve el valor del atributo new_record.
Atributos incluidos de Stateful
#destruido, #marcado_para_destruir, #anteriormente_nuevo_registro
Atributos incluidos de la Asociación
Atributos incluidos en Atributos
Atributos incluidos en Clients::StorageOptions
#opciones_de_almacenamiento_recordadas
Colapso del resumen del método de instancia
-
#_handle_callbacks_after_instantiation(execute_callbacks) ⇒ Objeto
privada
Maneja la configuración y ejecución de devoluciones de llamadas, si se deben ejecutar; de lo contrario, agrega las devoluciones de llamadas apropiadas a la lista de devoluciones de llamadas pendientes.
-
#como_documento ⇒ Hash
Devuelve un hash de toda la jerarquía del documento de este documento y los siguientes.
-
#se convierte en(klass) ⇒ Documento
Devuelve una instancia de la clase especificada con los atributos, errores y documentos incrustados del documento actual.
-
#freeze ⇒ Document
Congela los atributos internos del documento.
-
#frozen? ⇒ true | false
Comprueba si el documento está congelado.
-
#hash ⇒ Entero
Delegados de identidad para permitir que dos registros de la misma identidad trabajen con algo como:.
-
#identidad ⇒ Matriz
Un documento se identifica absolutamente por su clase y su ID de base de datos:.
-
#initialize(attrs = nil, &block) ⇒ Document
Crea una instancia de un nuevo
Documenty establece los atributos del documento si se proporcionan. -
#internal_state=(estado) ⇒ Objeto
privada
Establece el estado interno de este documento.
-
#nombre_del_modelo ⇒ Cadena
Devuelve el nombre del modelo del documento.
-
#to_key ⇒ Cadena
Devuelve el valor clave del documento.
Métodos incluidos en Touchable::InstanceMethods
#_borrar_actualizaciones_táctiles, #_recopilar_actualizaciones_táctiles, #_ejecutar_devoluciones_de_llamadas_táctiles_desde_la_raíz, #_padre_tocable_?, #suprimir_devoluciones_de_llamadas_táctiles, #toque, #devoluciones_de_llamadas_táctiles_suprimidas?
Métodos incluidos de Composable
Métodos incluidos de Equality
Métodos incluidos en Copyable
Métodos incluidos de Interceptable
#_mongoid_ejecutar_niño_después_de_las_devoluciones_de_llamadas, #_mongoid_ejecutar_niño_antes_de_las_devoluciones_de_llamadas, #_mongoid_ejecutar_niño_devoluciones_de_llamadas_con_alrededor, #_mongoid_ejecutar_niño_devoluciones_de_llamadas_sin_alrededor, #¿devolución_de_llamada_ejecutable?, #¿en_estado_de_devolución_de_llamada?, #devoluciones_de_llamadas_pendientes, #devoluciones_de_llamadas_pendientes=, #ejecutar_después_de_las_devoluciones_de_llamadas, #ejecutar_antes_de_las_devoluciones_de_llamadas, #ejecutar_devoluciones_de_llamadas, #ejecutar_devoluciones_de_llamadas_pendientes
Métodos incluidos de Validatable
#begin_validate, #exit_validate, #realizando_validaciones?, #leer_atributo_para_validación, #¿válido?, #validado?, #validado, #validando, #validando_con_consulta?
Métodos incluidos de Traversable
__redefinir, #_hijos, #_descendientes, #_padre, #_padre=, #_¡restablecer_descendientes_memorizados!, #_raíz, #_raíz?, #recopilar_hijos, #recopilar_descendientes, #marcar_descendientes_persistentes, #hereditario?, #parentizar, #eliminar_hijo, #restablecer_descendientes_persistentes
Métodos incluidos en Cacheable
Métodos incluidos de Stateful
#destruido?, #marcado_para_destruir?, #nuevo_registro=, #nuevo_registro?, #persistente?, #anteriormente_nuevo_registro?, #anteriormente_persistente?, #¿insertable?, #¡solo lectura!, #¿solo lectura?, #¿configurable?, #¿actualizable?
Métodos incluidos de Shardable
#shard_key_field_value, #shard_key_fields, #shard_key_selector, #shard_key_selector_in_db
Métodos incluidos en Serializable
Métodos incluidos en Seleccionable
Métodos incluidos en Reloadable
Métodos incluidos de la Asociación
#nombre_de_asociación, #¿incrustado?, #¿incrustado_muchos?, #¿incrustado_uno?, #¿referenciado_muchos?, #¿referenciado_uno?, #recargar_relaciones
Métodos incluidos en Asociación::Reflexiones
#reflexionar_sobre_toda_la_asociación, #reflexionar_sobre_la_asociación
Métodos incluidos en Association::Macros
Métodos incluidos de Asociación::Dependiente
#¡aplicar_destruir_dependencias!, ¡definir_dependencia!, ¡validar!
Métodos incluidos en Association::Accessors
#__build__, #crear_relación, #restablecer_criterios_de_relación, #establecer_relación
Métodos incluidos en Association::Referenced::Syncable
#_sincronizable?, #_sincronizado, #_sincronizado?, #eliminar_claves_inversas, #actualizar_claves_inversas
Métodos incluidos en Association::Referenced::CounterCache
¡define_devoluciones_de_llamadas!, #reinicia_contadores
Métodos incluidos en Asociación::Referenciado::AutoGuardar
#__autosaving__, #autosaved?, #changed_for_autosave?, define_autosave!
Métodos incluidos de Persistable
#atómicamente, #¡falla_debido_a_la_devolución_de_llamada!, #¡falla_debido_a_la_validación!
Métodos incluidos desde Persistable::Unsettable
Métodos incluidos en Persistable::Upsertable
Métodos incluidos de Persistable::Updatable
#update, #update!, #update_attribute
Métodos incluidos en Persistable::Settable
Métodos incluidos en Persistable::Savable
Métodos incluidos en Persistable::Renamable
Métodos incluidos en Persistable::Pushable
#añadir_al_conjunto, #empujar
Métodos incluidos de Persistable::Pullable
Métodos incluidos de Posicional
Métodos incluidos en Persistable::Poppable
Métodos incluidos de Persistable::Multipliable
Métodos incluidos en Persistable::Minable
Métodos incluidos en Persistable::Maxable
Métodos incluidos de Persistable::Logical
Métodos incluidos en Persistable::Incrementable
Métodos incluidos en Persistable::Destroyable
#destruir, #destruir!
Métodos incluidos de Persistable::Deletable
Métodos incluidos en Persistable::Creatable
Métodos incluidos de Matchable
Métodos incluidos en Campos
#aplicar_valores_predeterminados, #aplicar_valores_predeterminados_posprocesados, #aplicar_valores_predeterminados_preprocesados, #nombres_de_atributos, nombre_de_campo_de_base_de_datos, #nombre_de_campo_de_base_de_datos, #campo_de_punto_dólar?, #¿configurable_perezosamente?, opción, opciones, atravesar_árbol_de_asociación, #¿usar_identificadores_de_objeto?, #¡validar_nombre_de_campo_escribible!
Métodos incluidos de Evolvable
#__id_del_objeto_evolucionado__
Métodos incluidos en Atributos
#asignar_atributos, #¿atributo_faltante?, #¿atributo_presente?, #atributos_antes_de_la_conversión_de_tipo, #¿tiene_atributo?, #¿tiene_atributo_antes_de_la_conversión_de_tipo?, #procesar_atributo_sin_escribir, #leer_atributo, #leer_atributo_antes_de_la_conversión_de_tipo, #eliminar_atributo, #atributos_tipificados, #escribir_atributo, #escribir_atributos
Métodos incluidos en Attributes::Readonly
Métodos incluidos de Atributos::Procesamiento
Métodos incluidos de los Clientes
borrar, clientes, predeterminado, desconectar, reconectar, establecer, con_nombre
Métodos incluidos desde Clientes::Sesiones
Métodos incluidos en Clientes::Opciones
#colección, #nombre_de_colección, #cliente_mongo, #contexto_de_persistencia, #contexto_de_persistencia?, #con
Métodos incluidos en Clients::StorageOptions
#¡recuerda_las_opciones_de_almacenamiento!, #opciones_de_almacenamiento
Métodos incluidos de Changeable
#atributo_antes_del_último_guardado, #cambiado, #¿cambiado?, #atributos_cambiados, #cambios, #hijos_cambiados?, #hijos_pueden_haber_cambiado!, #mover_cambios, #persistencia_posterior, #cambios_anteriores, #eliminar_cambio, #cambio_guardado_en_atributo, #cambio_guardado_en_atributo?, #establecedores, #¿se_guardará_el_cambio_en_atributo?
Métodos incluidos de Atomic
#añadir_extracción_atómica, #añadir_desactivación_atómica, #matriz_atómica_añadir_a_conjuntos, #extracciones_matriz_atómica, #inserciones_matriz_atómica, #nombre_atributo_atómico, #modificador_eliminación_atómico, #modificador_inserción_atómico, #ruta_atómica, #rutas_atómicas, #posición_atómica, #extracciones_atómicas, #inserciones_atómicas, #conjuntos_atómicos, #desactivaciones_atómicas,#actualizaciones_atómicas,#extracciones_atómicas_retrasadas, #conjuntos_atómicos_retrasados, #desactivaciones_atómicas_retrasadas, #marcar_como_destruido, #destrucciones_marcadas, #proceso_destrucciones_marcadas
Detalles de los atributos de instancia
#__selected_fields ⇒ Objeto
Devuelve el valor del atributo __selected_fields.
30 31 32 |
# Archivo 'lib/mongoid/document.rb', línea 30 def __selected_fields @__campos_seleccionados end |
#new_record ⇒ Objeto (solo lectura)
Devuelve el valor del atributo new_record.
31 32 33 |
# Archivo 'lib/mongoid/document.rb', línea 31 def nuevo_registro @nuevo_record end |
Detalles del método de instancia
#_handle_callbacks_after_instantiation(ejecutar_callbacks) ⇒ Objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Maneja la configuración y ejecución de devoluciones de llamadas, si se deben ejecutar; de lo contrario, agrega las devoluciones de llamadas apropiadas a la lista de devoluciones de llamadas pendientes.
186 187 188 189 190 191 192 193 194 195 196 |
# Archivo 'lib/mongoid/document.rb', línea 186 def _manejar_devoluciones_de_llamadas_después_de_la_instanciación(ejecutar_devoluciones de llamadas) Si ejecutar_devoluciones de llamadas aplicar_valores predeterminados rendimiento yo Si ¿bloque_dado? ejecutar_devoluciones de llamadas(:encontrar) a no ser que _find_callbacks.¿vacío? ejecutar_devoluciones de llamadas(:inicializar) a no ser que _inicializar_devoluciones de llamada.¿vacío? else rendimiento yo Si ¿bloque_dado? yo.devoluciones de llamadas pendientes += %i[ aplicar_valores predeterminados buscar inicializar ] end end |
#como_documento ⇒ Hash
Devuelve un hash de toda la jerarquía del documento, desde este documento hasta los siguientes. Se utiliza cuando los atributos son necesarios para todo y no solo para el documento actual.
136 137 138 |
# Archivo 'lib/mongoid/document.rb', línea 136 def como_documento BSON::Documento.Nuevo(como_atributos) end |
#se convierte en(klass) ⇒ Documento
Devuelve una instancia de la clase especificada con los atributos, errores y documentos incrustados del documento actual.
151 152 153 154 155 156 157 158 |
# Archivo 'lib/mongoid/document.rb', línea 151 def se convierte(klass) ¡verificación de documento mongoid!(klass) se convirtió en = klass.Nuevo(clonar_documento) se convirtió en.estado interno = estado interno se convirtió en end |
#freeze ⇒ Document
Congela los atributos internos del documento.
51 52 53 |
# Archivo 'lib/mongoid/document.rb', línea 51 def freeze como_atributos.freeze y yo end |
#frozen? ⇒ true | false
Comprueba si el documento está congelado
61 62 63 |
# Archivo 'lib/mongoid/document.rb', línea 61 def frozen? atributos.frozen? end |
#hash ⇒ Entero
Delegados de identidad para permitir que dos registros de la misma identidad trabajen con algo como:
[ Person.find(1), Person.find(2), Person.find(3) ] &
[ Person.find(1), Person.find(4) ] # => [ Person.find(1) ]
75 76 77 |
# Archivo 'lib/mongoid/document.rb', línea 75 def hash identidad.hash end |
#identidad ⇒ arreglo
Un documento se identifica absolutamente por su clase y su ID de base de datos:
Persona.primera.identidad #=> [Persona, BSON::ObjectId('4f775130a04745933a000003')]
87 88 89 |
# Archivo 'lib/mongoid/document.rb', línea 87 def identidad [ yo.clase, _id ] end |
#initialize(attrs = nil, &block) ⇒ Document
Crea una instancia de Document y establece los atributos del documento, si se proporcionan. Si no se proporcionan atributos, se inicializarán con un Hash vacío.
Si se define una clave principal, el ID del documento se establecerá en esa clave; de lo contrario, se establecerá en una nueva cadena BSON::ObjectId.
104 105 106 |
# Archivo 'lib/mongoid/document.rb', línea 104 def inicializar(attrs = nulo, Ybloque) documento_de_construcción(attrs, Ybloque) end |
#internal_state=(estado) ⇒ Objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Establece el estado interno de este documento. Solo lo usa #becomes para inicializar un documento reescrito.
166 167 168 169 170 171 172 173 174 175 176 |
# Archivo 'lib/mongoid/document.rb', línea 166 def estado_interno=(Estado) yo._id = Estado[:id] @atributos_cambiados = Estado[:atributos_cambiados] @errors = Modelo activo::Errors.Nuevo(yo).grifo { |e| e.¡copiar!(Estado[:errors]) } @nuevo_record = Estado[:nuevo_registro] @destruido = Estado[:destruido] actualización_discriminadora(Estado[:la clave discriminadora era]) (Estado[:nuevo_registro]) end |
#nombre_del_modelo ⇒ Cadena
Devuelve el nombre del modelo del documento.
114 115 116 |
# Archivo 'lib/mongoid/document.rb', línea 114 def nombre_del_modelo yo.clase.nombre_del_modelo end |
#to_key ⇒ Cadena
Devuelve el valor clave del documento.
124 125 126 |
# Archivo 'lib/mongoid/document.rb', línea 124 def a_clave (¿persistió? || ¿destruido?) ? [ _id.a_s ] : nulo end |