Módulo: Mongoid::Persistable
- Ampliado por:
- ActiveSupport::Preocupación
- Incluye:
- Creable, Eliminable, Destruible, Incrementable, Lógico, Maximizable, Minable, Multiplicable, Expansible, Extraíble, Insertable, Renombrable, Guardable, Configurable, No configurable, Actualizable, Upsertable, Posicional
- Incluido en:
- Componible
- Definido en:
- lib/mongoid/persistable.rb,
lib/mongoid/persistable/logical.rb,
lib/mongoid/persistable/maxable.rb,
lib/mongoid/persistable/minable.rb,
lib/mongoid/persistable/savable.rb,
lib/mongoid/persistable/poppable.rb,
lib/mongoid/persistable/pullable.rb,
lib/mongoid/persistable/pushable.rb,
lib/mongoid/persistable/settable.rb,
lib/mongoid/persistable/creatable.rb,
lib/mongoid/persistable/deletable.rb,
lib/mongoid/persistable/renamable.rb,
lib/mongoid/persistable/updatable.rb,
lib/mongoid/persistable/unsettable.rb,
lib/mongoid/persistable/upsertable.rb,
lib/mongoid/persistable/destroyable.rb,
lib/mongoid/persistable/multipliable.rb,
lib/mongoid/persistable/incrementable.rb
Overview
Contiene el comportamiento general para operaciones de persistencia.
Definido en el espacio de nombres
Modules: Creable, Eliminable, Destruible, Incrementable, Lógico, Maximizable, Minable, Multiplicable, Expansible, Extraíble, Insertable, Renombrable, Guardable, Configurable, No configurable, Actualizable, Upsertable
Colapso delresumen constante
- LISTA_OPERACIONES =
Las operaciones atómicas que tratan con matrices o conjuntos en la base de datos.
[ "$addToSet", "$push", "$pull", "$pullAll" ].freeze
Colapso del resumen del método de instancia
-
#atómicamente(join_context: nil) ⇒ verdadero | falso
Ejecutar operaciones de forma atómica (en una única llamada a la base de datos) para todo lo que sucedería dentro del bloque.
-
#¡Fallo debido a la devolución de llamada!(método) ⇒ Objeto
Genera un error si falla una devolución de llamada.
-
#¡Fallo debido a la validación! ⇒ Objeto
Genera un error si falla la validación.
Métodos incluidos en Unsettable
Métodos incluidos en Upsertable
Métodos incluidos en Actualizable
#update, #update!, #update_attribute
Métodos incluidos en Settable
Métodos incluidos en Savable
Métodos incluidos en Renamable
Métodos incluidos en Pushable
#añadir_al_conjunto, #empujar
Métodos incluidos en Pullable
Métodos incluidos de Posicional
Métodos incluidos en Poppable
Métodos incluidos de Multipliable
Métodos incluidos de Minable
Métodos incluidos de Maxable
Métodos incluidos de Logical
Métodos incluidos de Incrementable
Métodos incluidos de Destruible
#destruir, #destruir!
Métodos incluidos de suprimible
Métodos incluidos en Creatable
Detalles del método de instancia
#atómicamente(join_context: nil) ⇒ verdadero | falso
Ejecuta operaciones de forma atómica (en una sola llamada a la base de datos) para todo lo que ocurriría dentro del bloque. Este método permite anidar llamadas adicionales de forma atómica, que se comportarán según las opciones descritas a continuación.
Se puede especificar la opción join_context, que, al ser verdadera, fusionará las operaciones declaradas por el bloque dado con el bloque que envuelve atómicamente la invocación actual para el mismo documento, si existe. Si este bloque o cualquier otro bloque que comparta el mismo contexto se activa antes de persistir, todas las operaciones de ese contexto no se persistirán y se restablecerán en memoria.
Cuando join_context es falso, el bloque de operaciones dado se conservará independientemente de otros contextos. Los fallos en otros contextos no lo afectarán, siempre que este bloque haya podido ejecutarse y conservar los cambios.
El valor predeterminado de join_context se establece mediante la opción de configuración global join_contexts, cuyo valor predeterminado es falso.
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
# Archivo 'lib/mongoid/persistable.rb', línea 94 def atómicamente(contexto_de_unión: nulo) contexto_de_unión = Mongoid.contextos_de_unión Si contexto_de_unión.nil? profundidad de llamada = @atomic_depth ||= 0 tiene_su_contexto = profundidad de llamada.zero? || !contexto_de_unión @atomic_updates_to_execute_stack ||= [] _mongoid_push_atomic_context Si tiene_su_contexto Si ¿bloque_dado? @atomic_depth += 1 rendimiento(yo) @atomic_depth -= 1 end Si tiene_su_contexto operaciones atómicas persistentes @atomic_context _mongoid_eliminar_cambios_de_contexto_atómico end true rescate Error estándar => e ¡_mongoid_reset_cambios_de_contexto_atómico! Si tiene_su_contexto propagar e asegurar _mongoid_pop_contexto_atómico Si tiene_su_contexto Si profundidad de llamada.zero? @atomic_depth = nulo @atomic_updates_to_execute_stack = nulo end end |
#¡Fallo debido a la devolución de llamada!(método) ⇒ Objeto
Genera un error si falla una devolución de llamada.
143 144 145 |
# Archivo 'lib/mongoid/persistable.rb', línea 143 def ¡Fallo debido a la devolución de llamada!(Método) propagar Errors::Callback.Nuevo(yo.clase, Método) end |
#¡Fallo debido a la validación! ⇒ Objeto
Genera un error si falla la validación.
131 132 133 |
# Archivo 'lib/mongoid/persistable.rb', línea 131 def ¡Fallo debido a la validación! propagar Errors::Validaciones.Nuevo(yo) end |