この質問の範囲外の理由で(上記の注を参照)、Railsデータベーストランザクションを開始してから、そのトランザクションを別のスコープでロールバックできるようにしたいと思います。例えば:
def before_callback
start_transaction # Start the transaction
# Create/Update some records
end
def after_callback
rollback_transaction # Rollback changes from before_callback and do_stuff
end
def do_stuff
before_callback
# Do some stuff
after_callback
end
do_stuff
transaction do .. end
これは、少しリファクタリングするだけで簡単に解決できる工夫された例だと思いますが、コンテキストではdo_stuff
、私が本当にいじりたくない外部プラグインの一部であることを念頭に置いてください。Railsで説明したのと同じようなことをする方法はありますか?