Módulo: Mongoid::Document
- Ampliado por:
- ActiveSupport::Concern
- Incluye:
- Composable, Touchable::InstanceMethods
- 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
Resumen de constantes colapsar
- illegal_key =
Expresión regular para emparejar claves BSON ilegales. Nota que bson 4.1 tiene la constante BSON::String::ILLEGAL_KEY que debería usarse en su lugar. Cuando se lance el controlador Ruby 2.3.0 y Mongoid pueda actualizarse para requerir >= 2.3.0, se podrá usar la constante BSON.
/(\A[$])|(\.)/.freeze
Constantes incluidas de Composable
Composable::MODULES, Composable::RESERVED_METHOD_NAMES
Constantes incluidas en Interceptable
Constantes incluidas desde Asociación
Constantes incluidas desde Asociación::Dependencia
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 Clientes
Constantes incluidas de Atomic
Resumen de atributos de la instancia colapsar
-
#__selected_fields ⇒ Objeto
Devuelve el valor del atributo __selected_fields.
-
#new_record ⇒ Objeto
Solo lectura
Devuelve el valor del atributo new_record.
Atributos incluidos de Stateful
#destruido, #marcado_para_destrucción, #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
Gestiona la configuración y ejecución de callbacks, si se van a ejecutar; de lo contrario, agrega las callbacks apropiadas a la lista de callbacks 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 Document's se identifica absolutamente por su clase y ID de base de datos:.
-
#initialize(attrs = nil, &block) ⇒ Document
Crea una nueva
Document, estableciendo los atributos del document si se proporcionan. -
#internal_state=(estado) ⇒ Object
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 desde Touchable::InstanceMethods
#_clear_touch_updates, #_gather_touch_updates, #_run_touch_callbacks_from_root, #_touchable_parent?, #suppress_touch_callbacks, #touch, #touch_callbacks_suppressed?
Métodos incluidos en Composable
Métodos incluidos de Equality
Métodos incluidos de Copiable
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, #performing_validations?, #read_attribute_for_validation, #valid?, #validated?, #validating, #validating_with_query?
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 de Almacenamiento en caché
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 de Seleccionable
Métodos incluidos de SearchIndexable
#auto_embed_search, #vector_search
Métodos incluidos de Recargable
Métodos incluidos de Asociación
#association_name, #embedded?, #embedded_many?, #embedded_one?, #referenced_many?, #referenced_one?, #reload_relations
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::Builders
define_builder!, define_creator!
Métodos incluidos de Association::Depending
#aplicar_destruir_dependencias!, definir_dependencia!, ¡validar!
Métodos incluidos de Association::Accessors
#__build__, #create_relation, define_builder!, define_creator!, define_existence_check!, define_getter!, define_ids_getter!, define_ids_setter!, define_setter!, #reset_relation_criteria, #set_relation
Métodos incluidos de 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 de Association::Referenced::AutoSave
#__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 de Persistable::Settable
Métodos incluidos de Persistable::Savable
Métodos incluidos de Persistable::Renamable
Métodos incluidos de Persistable::Pushable
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 Evolucionable
Métodos incluidos de 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, por defecto, desconectar, reconectar, configurar, con_nombre
Métodos incluidos de Clients::Sessions
Métodos incluidos de Clients::Options
#colección, #collection_name, #mongo_client, #persistence_context, #persistence_context?, #with
Métodos incluidos de Clients::StorageOptions
#remember_storage_options!, #storage_options
Métodos incluidos en Changeable
#attribute_before_last_save, #changed, #changed?, #changed_attributes, #changes, #children_changed?, #children_may_have_changed!, #move_changes, #post_persist, #previous_changes, #remove_change, #saved_change_to_attribute, #saved_change_to_attribute?, #setters, #will_save_change_to_attribute?
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 atributo de instancias
#__selected_fields ⇒ objeto
Devuelve el valor del atributo __selected_fields.
30 31 32 |
# Archivo 'lib/mongoid/document.rb', línea 30 def __selected_fields @__selected_fields end |
#new_record ⇒ Object (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 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.
Gestiona la configuración y ejecución de callbacks, si se van a ejecutar; de lo contrario, agrega las callbacks apropiadas a la lista de callbacks 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 document se identifica absolutamente por su clase y el ID de base de datos:
Person.first.identity #=> [Persona, 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
Crear una nueva Document, estableciendo los atributos del Document 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 document se establecerá en esa clave; 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, &bloque) construct_document(attrs, &bloque) end |
#internal_state=(estado) ⇒ Object
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.
Establece el estado interno de este documento. Utilizado solo por #becomes para ayudar a inicializar un documento retipado.
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[:changed_attributes] @errors = ActiveModel::Errors.Nuevo(sí mismo).tocar { |e| e.¡copiar!(Estado[:errors]) } @nuevo_registro = Estado[:new_record] @destroyed = Estado[destruido(a)] update_discriminator(Estado[La clave del discriminador era]) (Estado[:new_record]) end |
#model_name ⇒ string
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 to_key (¿persistió? || ¿destruido?) ? [ _id.to_s ] : nulo end |