transaction

トランザクション(transaction)

適応バージョン

  • 1.0.0
  • 1.1.0
  • 1.1.1
  • 1.1.6
  • 1.2.0
  • 1.2.6
  • 2.0.0
  • 2.0.1
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2
  • 2.3.8
  • 3.0.0
  • 3.0.5
  • 3.0.7
  • 3.0.9
  • 3.1.0
  • 3.2.3
  • 3.2.8
  • 3.2.13
  • 4.0.0
  • 4.1.0
  • 4.2.1

説明

分割不可能な複数のレコードの更新を1つの単位にまとめて処理すること

特徴

  • データベース内の情報の整合性を保つための手段
  • 複数のデータベースにまたがる分散トランザクションはサポートしていない
  • 使用するにはデータベースがトランザクションをサポートしていることが必要

使い方

ActiveRecord::Base.transaction do
  例外が発生するかもしれない処理
end
  例外が発生しなかった場合の処理
resque => e
  例外が発生した場合の処理
モデル.transaction do
  例外が発生するかもしれない処理
end
  例外が発生しなかった場合の処理
resque => e
  例外が発生した場合の処理
  • ブロック内のすべての処理が正常に行われた場合に保存
  • エラーが発生した場合は、ロードバック

def new
  User.transaction do
    a1 = User.new(:name => 'tarou')
    a1.save!
    a2 = User.new):name ~> 'jirou')
    a2.save!
  end
  render :text => '更新に成功しました'
  rescue => e
  render :text => e.message
end

ソースコード

ソースコード検索