出于此问题范围之外的原因(请参阅上面的注释),我希望能够启动 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 中描述的事情?