Active Record 真实事务
方法
- C
- M
- R
实例公有方法
commit() 链接
源代码: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 487 def commit if materialized? connection.commit_db_transaction connection.reset_isolation_level if isolation_level end @state.full_commit! @instrumenter.finish(:commit) if materialized? end
materialize!() 链接
源代码: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 450 def materialize! if joinable? if isolation_level connection.begin_isolated_db_transaction(isolation_level) else connection.begin_db_transaction end else connection.begin_deferred_transaction(isolation_level) end super end
restart() 链接
源代码: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 464 def restart return unless materialized? @instrumenter.finish(:restart) if connection.supports_restart_db_transaction? @instrumenter.start connection.restart_db_transaction else connection.rollback_db_transaction materialize! end end
rollback() 链接
源代码: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 478 def rollback if materialized? connection.rollback_db_transaction connection.reset_isolation_level if isolation_level end @state.full_rollback! @instrumenter.finish(:rollback) if materialized? end