Módulo: Mongoid::Clients::Sessions::ClassMethods
- Incluído em:
- Mongoid
- Definido em:
- lib/mongoid/clients/sessions.rb
Colapsode resumo constante
- CALLBACK_ACTIONS =
Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.
Ações que podem ser usadas para trigger chamadas de resposta transacionais.
[:create, :destroy, :update]
Recolhimento do Resumo do método de instância
-
#after_commit(*args, &block) ➤ Objeto
Define que um chamada de resposta de chamada é chamado após a confirmação de uma transação.
-
#after_create_commit(*args, &block) ➤ Objeto
Atalho para after_commit :hook, on: :create.
-
#after_destroy_commit(*args, &block) ➤ Objeto
Atalho para after_commit :hook, on: :destroy.
-
#after_rollback(*args, &block) ➤ Objeto
Esse chamada de resposta de chamada é chamado depois que uma criação, atualização ou destruição é revertida.
-
#after_save_commit(*args, &block) ➤ Objeto
Atalho para after_commit :hook, on: [ :create, :update ].
-
#after_update_commit(*args, &block) ➤ Objeto
Atalho para after_commit :hook, on: :update.
-
#transaction(options = { }, session_options: { }) { ... } ➤ Object
Executa um bloco dentro do contexto de uma transação.
-
#with_session(opções = {}) {|The| ... } ➤ Objeto
Execute um bloco dentro do contexto de uma sessão.
Detalhes do método de instância
#after_commit(*args, &block) ➤ Objeto
Define que um chamada de resposta de chamada é chamado após a confirmação de uma transação. A chamada de resposta de resposta é chamada somente se o documento for criado, atualizado ou destruído na transação.
Consulte ActiveSupport::Callbacks::ClassMethods::set_callback
para mais informações sobre parâmetros de método e possíveis opções.
114 115 116 117 |
# Arquivo 'lib/mongoid/clients/sessions.rb', linha 114 def after_commit(*Args, &noum: bloco ; verb: bloquear) (Args) set_callback(:commit, :after, *Args, &noum: bloco ; verb: bloquear) end |
#after_create_commit(*args, &block) ➤ Objeto
Atalho para after_commit :hook, on: :create.
126 127 128 129 |
# Arquivo 'lib/mongoid/clients/sessions.rb', linha 126 def after_create_commit(*Args, &noum: bloco ; verb: bloquear) (Args, em: :create) set_callback(:commit, :after, *Args, &noum: bloco ; verb: bloquear) end |
#after_destroy_commit(*args, &block) ➤ Objeto
Atalho para after_commit :hook, on: :destroy.
138 139 140 141 |
# Arquivo 'lib/mongoid/clients/sessions.rb', linha 138 def after_destroy_commit(*Args, &noum: bloco ; verb: bloquear) (Args, em: :destroy) set_callback(:commit, :after, *Args, &noum: bloco ; verb: bloquear) end |
#after_rollback(*args, &block) ➤ Objeto
Esse chamada de resposta de chamada é chamado depois que uma criação, atualização ou destruição é revertida.
Verifique a documentação do after_commit
para opções.
146 147 148 149 |
# Arquivo 'lib/mongoid/clients/sessions.rb', linha 146 def after_rollback(*Args, &noum: bloco ; verb: bloquear) (Args) set_callback(:rollback, :after, *Args, &noum: bloco ; verb: bloquear) end |
#after_save_commit(*args, &block) ➤ Objeto
Atalho para after_commit :hook, on: [ :create, :update ]
120 121 122 123 |
# Arquivo 'lib/mongoid/clients/sessions.rb', linha 120 def after_save_commit(*Args, &noum: bloco ; verb: bloquear) (Args, em: [ :create, :update ]) set_callback(:commit, :after, *Args, &noum: bloco ; verb: bloquear) end |
#after_update_commit(*args, &block) ➤ Objeto
Atalho para after_commit :hook, on: :update.
132 133 134 135 |
# Arquivo 'lib/mongoid/clients/sessions.rb', linha 132 def after_update_commit(*Args, &noum: bloco ; verb: bloquear) (Args, em: :update) set_callback(:commit, :after, *Args, &noum: bloco ; verb: bloquear) end |
#transaction(options = { }, session_options: { }) { ... } ➤ Object
Executa um bloco dentro do contexto de uma transação.
Se o bloqueio não gerar um erro, a transação será confirmada. Se um erro for gerado, a transação será abortada. O erro é passado, exceto para o 'Mongoid::Errors::Rollback'. Este erro não é repassado, então você pode levantá-lo se quiser reverter a transação deliberadamente.
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# Arquivo 'lib/mongoid/clients/sessions.rb', linha 87 def transação( = {}, session_options: {}) with_session() fazer |session| começar session.start_transaction() rendimento commit_transaction(session) salvar Mongoid::Errors::Rollback abort_transaction(session) salvar Mongoid::Errors::InvalidSessionNesting # A sessão deve ser encerrada aqui. aumentar Mongoid::Errors::InvalidTransactionNesting.Novo salvar mongo::Erro::Sessão inválida, mongo::Erro::Operação de transação inválida => e abort_transaction(session) aumentar Mongoid::Errors::TransactionError(e) salvar StandardError => e abort_transaction(session) aumentar e end end end |
#with_session(opções = {}) {|The| ... } ➤ Objeto
Execute um bloco dentro do contexto de uma sessão.
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# Arquivo 'lib/mongoid/clients/sessions.rb', linha 42 def with_session( = {}) se Threaded.get_session(cliente: persistence_context.Cliente) aumentar Mongoid::Errors::InvalidSessionNesting.Novo end session = persistence_context.Cliente.start_session() Threaded.set_session(session, cliente: persistence_context.Cliente) rendimento(session) salvar mongo::Erro::Sessão inválida => ex se mongo::Erro::SessionsNotSupported === ex aumentar Mongoid::Errors::SessionsNotSupported.Novo mais aumentar ex end salvar mongo::Erro::Falha de operação => ex se (ex.código == 40415 && ex. =~ /startTransaction/) || (ex.código == 20 && ex. =~ /Transação/) aumentar Mongoid::Errors::TransactionsNotSupported.Novo mais aumentar ex end garantir Threaded.clear_session(cliente: persistence_context.Cliente) end |