Módulo: Mongoid::Clientes::Sesiones::Métodos de clase
- Incluido en:
- Mongoid
- Definido en:
- lib/mongoid/clients/sessions.rb
Colapso delresumen constante
- CALLBACK_ACTIONS =
Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.
Acciones que se pueden utilizar para activar devoluciones de llamada transaccionales.
[crear:, :destroy, :update]
Resumen del método de instancia colapsar
-
#after_commit(*args, &block) ⇒ Objeto
Configura una devolución de llamada que se llama después de una confirmación de una transacción.
-
#after_create_commit(*args, &block) ⇒ Object
Atajo para after_commit:hook, on::create.
-
#después_de_comprometer_destrucción(*args, &block) ⇒ Object
Atajo para after_commit :hook, on: :destroy.
-
#after_rollback(*args, &block) ⇒ Objeto
Esta función de retorno se llama después de que se revoque una creación, actualización o eliminación.
-
#after_save_commit(*args, &block) ⇒ Objeto
Atajo para after_commit:hook, on: [:create,:update ].
-
#after_update_commit(*args, &block) ⇒ objeto
Atajo para after_commit:hook, on::update.
-
#transacción(opciones = {}, session_options: {}) { ... } ⇒ Objeto
Ejecuta un bloque dentro del contexto de una transacción.
-
#with_session(options = {}) {|La| ... } ⇒ Objeto
Ejecuta un bloque dentro del contexto de una sesión.
Detalles del método de instancia
#after_commit(*args, &block) ⇒ Objeto
Configura una función de retorno que se llama después de una confirmación de una transacción. La función de retorno se llama solo si el documento se crea, actualiza o destruye en la transacción.
Consulta ActiveSupport::Callbacks::ClassMethods::set_callback para obtener más información sobre los parámetros del método y las posibles opciones.
119 120 121 122 |
# Archivo 'lib/mongoid/clients/sessions.rb', línea 119 def después de confirmar(*args, Ybloque) (args) establecer_devolución de llamada(Commit, después de, *args, Ybloque) end |
#after_create_commit(*args, &block) ⇒ Object
Atajo para after_commit:hook, on::create.
131 132 133 134 |
# Archivo 'lib/mongoid/clients/sessions.rb', línea 131 def after_create_commit(*args, Ybloque) (args, on: crear:) establecer_devolución de llamada(Commit, después de, *args, Ybloque) end |
#after_destroy_commit(*args, &block) ⇒ objeto
Atajo para after_commit :hook, on: :destroy.
143 144 145 146 |
# Archivo 'lib/mongoid/clients/sessions.rb', línea 143 def after_destroy_commit(*args, Ybloque) (args, on: :destroy) establecer_devolución de llamada(Commit, después de, *args, Ybloque) end |
#after_rollback(*args, &block) ⇒ Objeto
Esta función de retorno se llama después de que se revoque una creación, actualización o eliminación.
Consulta la documentación de after_commit para conocer las opciones disponibles.
151 152 153 154 |
# Archivo 'lib/mongoid/clients/sessions.rb', línea 151 def after_rollback(*args, Ybloque) (args) establecer_devolución de llamada(:rollback, después de, *args, Ybloque) end |
#after_save_commit(*args, &block) ⇒ Object
Acceso directo a after_commit :hook, on: [ :create, :actualizar ]
125 126 127 128 |
# Archivo 'lib/mongoid/clients/sessions.rb', línea 125 def after_save_commit(*args, Ybloque) (args, on: [ crear:, :update ]) establecer_devolución de llamada(Commit, después de, *args, Ybloque) end |
#after_update_commit(*args, &block) ⇒ objeto
Atajo para after_commit:hook, on::update.
137 138 139 140 |
# Archivo 'lib/mongoid/clients/sessions.rb', línea 137 def after_update_commit(*args, Ybloque) (args, on: :update) establecer_devolución de llamada(Commit, después de, *args, Ybloque) end |
#transacción(options = {}, session_options: {}) { ... } ⇒ objeto
Ejecuta un bloque dentro del contexto de una transacción.
Si el bloque no genera un error, la transacción se confirma. Si se produce un error, la transacción se cancela. El error se transmite a excepción de 'Mongoid::Errors::Rollback`. Este error no se transmite, por lo que puedes lanzarlo si deseas deliberadamente el rollback de la transacción.
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# Archivo 'lib/mongoid/clients/sessions.rb', línea 90 def transacción( = {}, session_options: {}) con_sesión() hacer |sesión| begin sesión.con_transacción() hacer rendimiento end.tocar { run_commit_callbacks(sesión) } rescate *transactions_not_supported_exceptions propagar Mongoid::Errors::transacciones no admitidas rescate Mongoid::Errors::Rollback ejecutar_abortar_devoluciones_de_llamadas(sesión) rescate Mongoid::Errors::InvalidSessionNesting # La sesión debe finalizarse aquí. propagar Mongoid::Errors::InvalidTransactionNesting.Nuevo rescate Mongo::Error::InvalidSession, Mongo::Error::OperaciónTransacciónInválida => e ejecutar_abortar_devoluciones_de_llamadas(sesión) propagar Mongoid::Errors::TransactionError.Nuevo(e) rescate StandardError => e ejecutar_abortar_devoluciones_de_llamadas(sesión) propagar e end end end |
#con_sesión(opciones = {}) {|El| ... } ⇒ Objeto
Ejecuta un bloque dentro del contexto de una sesión.
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# Archivo 'lib/mongoid/clients/sessions.rb', línea 42 def con_sesión( = {}) si Compacto.get_session(cliente: persistence_context.Cliente) propagar Mongoid::Errors::InvalidSessionNesting.Nuevo end sesión = persistence_context.Cliente.start_session() Compacto.set_session(sesión, cliente: persistence_context.Cliente) rendimiento(sesión) rescate Mongo::Error::InvalidSession => ex si Mongo::Error::SessionsNotSupported === ex propagar Mongoid::Errors::SessionsNotSupported.Nuevo else propagar ex end rescate Mongo::Error::OperationFailure => ex si (ex.Código == 40415 && ex. =~ /startTransaction/) || (ex.Código == 20 && ex. =~ /Transacción/) propagar Mongoid::Errors::transacciones no admitidas.Nuevo else propagar ex end rescate *transactions_not_supported_exceptions propagar Mongoid::Errors::transacciones no admitidas asegurar Compacto.borrar_documentos_modificados(sesión) Compacto.clear_session(cliente: persistence_context.Cliente) end |