跳至内容 跳至搜索

Active Record 重启父事务

方法
C
F
N
R

类公共方法

new(connection, parent_transaction, **options)

# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 377
def initialize(connection, parent_transaction, **options)
  super(connection, **options)

  @parent = parent_transaction

  if isolation_level
    raise ActiveRecord::TransactionIsolationError, "cannot set transaction isolation in a nested transaction"
  end

  @parent.state.add_child(@state)
end

实例公共方法

commit()

# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 396
def commit
  @state.commit!
end

full_rollback?()

# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 400
def full_rollback?; false; end

rollback()

# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 391
def rollback
  @state.rollback!
  @parent.restart
end