Se um servidor Rails está rodando no modo single threading, você pode começar uma transação por um pedido e então terminar uma transação com outro pedido. Todas as solicitações entre essas duas solicitações serão agrupadas em uma transação. Como isso pode ser útil? As vezes.
module Concerns
module Transactions
extend ActiveSupport::Concern
def transaction_begin
ActiveRecord::Base.connection.begin_db_transaction
ActiveRecord::Base.connection.increment_open_transactions
render nothing: true
end
def transaction_rollback
ActiveRecord::Base.connection.decrement_open_transactions
ActiveRecord::Base.connection.rollback_db_transaction
render nothing: true
end
end
end