データベーストランザクション
- 大雑把に言うと複数レコードに対する更新を一括で保存する(コミット)
- もしくは一括でキャンセルする(ロールバック)
- データベースの重要な機能
- トランザクションを適切に扱えば、致命的なデータの不整合を防ぐことができる
transaction
- saveメソッドを複数呼び出す場合は、transactionブロックの使用を検討する
- after_createなどのActive Recordコールバック機能は、自動でトランザクションになっている
- transactionブロックは「全件成功」か「全件失敗」の処理となる
- データベース内の情報の整合性を保つための手段
- 複数のデータベースにまたがる分散トランザクションはサポートしていない
- 使用するにはデータベースがトランザクションをサポートしていることが必要
参考記事