Módulo: Mongoid::Document
- Ampliado por:
- ActiveSupport::Concern
- Incluye:
- Componibles, Tocables::Métodos de Instancia
- Incluido en:
- GlobalDiscriminatorKeyAssignment::CampoHostInválido
- Definido en:
- lib/mongoid/document.rb
Overview
Este es el módulo base para todos los objetos de dominio que deben persistirse en la base de datos como documentos.
Definido bajo Namespace
Modules: ClassMethods
Colapso delresumen constante
- illegal_key =
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 de Composable
Composable::MÓDULOS, Composable::NOMBRES_DE_MÉTODOS_RESERVADOS
Constantes incluidas en Interceptable
Constantes incluidas desde Asociación
Constantes incluidas desde Asociación::Dependiente
Asociación::Dependiendo::ESTRATEGIAS
Constantes incluidas desde Perseverante
Constantes incluidas de Fields
Campos::Booleano, Campos::IDS, Campos::CLASES_BSON_INVÁLIDAS, Campos::SimboloString, Campos::TRANSLATIONS_SFX, Campos::TYPE_MAPPINGS
Constantes incluidas de Atomic
Resumen de atributos de la instancia colapsar
-
#__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 Asociación
Atributos incluidos desde Atributos
Atributos incluidos de Clients::StorageOptions
Resumen del método de instancia colapsar
-
#_handle_callbacks_after_instantiation(execute_callbacks) ⇒ Objeto
privado
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.
-
#as_document ⇒ Hash
Devuelve un hash de toda la jerarquía de documentos desde este documento hacia abajo.
-
#se vuelve(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
Verifica si el documento está congelado.
-
#hash ⇒ Integer
Se delega a la identidad para permitir que dos registros de la misma identidad funcionen con algo como:.
-
#identidad ⇒ arreglo
Un documento se identifica absolutamente por su clase e 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
privado
Establece el estado interno de este documento.
-
#model_name ⇒ String
Devuelve el nombre del modelo del documento.
-
#to_key ⇒ String
Devuelve el valor clave para el 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 en Composable
Métodos incluidos de Equality
Métodos incluidos en Copyable
Métodos incluidos de Interceptable
#_mongoid_run_child_after_callbacks, #_mongoid_run_child_before_callbacks, #_mongoid_run_child_callbacks, #_mongoid_run_child_callbacks_with_around, #_mongoid_run_child_callbacks_without_around, #callback_executable?, #in_callback_state?, #pending_callbacks, #pending_callbacks=, #run_after_callbacks, #run_before_callbacks, #run_callbacks, #run_pending_callbacks
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
__redefine, #_children, #_descendants, #_parent, #_parent=, #_reset_memoized_descendants!, #_root, #_root?, #collect_children, #collect_descendants, #flag_descendants_persisted, #hereditary?, #parentize, #remove_child, #reset_persisted_descendants
Métodos incluidos en Cacheable
Métodos incluidos de Stateful
#destroyed?, #flagged_for_destroy?, #new_record=, #new_record?, #persisted?, #previously_new_record?, #previously_persisted?, #pushable?, #readonly!, #readonly?, #settable?, #updateable?
Métodos incluidos de Shardable
#shard_key_field_value, #shard_key_fields, #shard_key_selector, #shard_key_selector_in_db
Métodos incluidos de Serializable
Métodos incluidos en Seleccionable
Métodos incluidos de Recargable
Métodos incluidos de Asociación
#nombre_de_asociación, #¿incrustado?, #¿incrustado_muchos?, #¿incrustado_uno?, #¿referenciado_muchos?, #¿referenciado_uno?, #recargar_relaciones
Métodos incluidos de Asociación::Reflexiones
#reflect_on_all_association, #reflect_on_association
Métodos incluidos de Association::Macros
Métodos incluidos de Association::Depending
#aplicar_destruir_dependencias!, definir_dependencia!, ¡validar!
Métodos incluidos de Association::Accessors
#__compilar__, #create_relation, #reset_relation_criteria, #set_relation
Métodos incluidos en Association::Referenced::Syncable
#_syncable?, #_synced, #_synced?, #remove_inverse_keys, #update_inverse_keys
Métodos incluidos de Association::Referenced::CounterCache
define_callbacks!, #reset_counters
Métodos incluidos en Asociación::Referenciado::AutoGuardar
#__autosaving__, #autosaved?, #changed_for_autosave?, define_autosave!
Métodos incluidos de Persistable
#atomically, #fail_due_to_callback!, #fail_due_to_validation!
Métodos incluidos desde Persistable::Unsettable
Métodos incluidos de 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 de Persistable::Renamable
Métodos incluidos de Persistable::Pushable
#añadir_al_conjunto, #empujar
Métodos incluidos de Persistable::Pullable
Métodos incluidos desde Positional
Métodos incluidos de Persistable::Poppable
Métodos incluidos de Persistable::Multipliable
Métodos incluidos de Persistable::Minable
Métodos incluidos de Persistable::Maxable
Métodos incluidos de Persistable::Logical
Métodos incluidos desde Persistable::Incrementable
Métodos incluidos desde Persistable::Destroyable
Métodos incluidos de Persistable::Deletable
Métodos incluidos de Persistable::Creatable
Métodos incluidos de Matchable
Métodos incluidos de Campos
#apply_default, #apply_defaults, #apply_post_processed_defaults, #apply_pre_processed_defaults, #attribute_names, database_field_name, #database_field_name, #dot_dollar_field?, #lazy_settable?, option, options, traverse_association_tree, #using_object_ids?, #validate_writable_field_name!
Métodos incluidos de Evolvable
Métodos incluidos en Atributos
#assign_attributes, #attribute_missing?, #attribute_present?, #attributes_before_type_cast, #has_attribute?, #has_attribute_before_type_cast?, #process_raw_attribute, #read_attribute, #read_attribute_before_type_cast, #remove_attribute, #typed_attributes, #write_attribute, #write_attributes
Métodos incluidos de Attributes::Readonly
Métodos incluidos de Atributos::Procesamiento
Métodos incluidos de clientes
borrar, clientes, predeterminado, desconectar, reconectar, establecer, con_nombre
Métodos incluidos de Clients::Sessions
Métodos incluidos de Clients::Options
#colección, #nombre_de_colección, #cliente_mongo, #contexto_de_persistencia, #contexto_de_persistencia?, #con
Métodos incluidos en Clients::StorageOptions
#remember_storage_options!, #storage_options
Métodos incluidos en 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
#add_atomic_pull, #add_atomic_unset, #atomic_array_add_to_sets, #atomic_array_pulls, #atomic_array_pushes, #atomic_attribute_name, #atomic_delete_modifier, #atomic_insert_modifier, #atomic_path, #atomic_paths, #atomic_position, #atomic_pulls, #atomic_pushes, #atomic_sets, #atomic_unsets, #atomic_updates, #delayed_atomic_pulls, #delayed_atomic_sets, #delayed_atomic_unsets, #flag_as_destroyed, #flagged_destroys, #process_flagged_destroys
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_registro end |
Detalles del método de instancia
#_handle_callbacks_after_instantiation(execute_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 gestionar(execute_callbacks) si execute_callbacks aplicar_predeterminados rendimiento sí mismo si ¿block_given? run_callbacks(Buscar) a menos que _find_callbacks.¿vacío? run_callbacks(:inicializar) a menos que _initialize_callbacks.¿vacío? else rendimiento sí mismo si ¿block_given? sí mismo.pending_callbacks += %i[ aplicar_predeterminados buscar inicializar ] end end |
#as_document ⇒ Hash
Devuelve un hash de toda la jerarquía de documentos desde este documento hacia abajo. 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 as_document BSON::Documento.Nuevo(as_attributes) 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) mongoid_document_check!(klass) se convirtió en = klass.Nuevo(clonar_documento) se convirtió en.internal_state = internal_state 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 as_attributes.freeze y sí mismo 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 ⇒ Integer
Se delega a la 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 el id de base de datos:
Person.first.identity #=> [Person, BSON::ObjectId(‘4f775130a04745933a000003’)]
87 88 89 |
# Archivo 'lib/mongoid/document.rb', línea 87 def identidad [ sí mismo.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 llave primaria, el ID del documento se establecerá en esa llave; de lo contrario, se establecerá en una nueva BSON::ObjectId string.
104 105 106 |
# Archivo 'lib/mongoid/document.rb', línea 104 def inicializar(attrs = nulo, Ybloque) construct_document(attrs, Ybloque) end |
#internal_state=(estado) ⇒ Object
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 internal_state=(Estado) sí mismo._id = Estado[:id] @changed_attributes = Estado[:atributos_cambiados] @errors = ActiveModel::Errors.Nuevo(sí mismo).tocar { |e| e.¡copiar!(Estado[:errors]) } @nuevo_registro = Estado[:nuevo_registro] @destroyed = Estado[:destruido] update_discriminator(Estado[La clave del discriminador 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 model_name sí mismo.clase.model_name end |
#to_key ⇒ String
Devuelve el valor clave para el documento.
124 125 126 |
# Archivo 'lib/mongoid/document.rb', línea 124 def a_clave (¿persistió? || ¿destruido?) ? [ _id.to_s ] : nulo end |