DAY32 destroy_all / transaction メソッド

TOKHEE·2024년 5월 9일
0

1. destroy_all メソッド

  • destroy_all メソッドは指定された条件に合うすべてのレコードを削除します
  • 各レコードに対して destroy メソッドが呼び出されます
  • この過程で関連するすべてのコールバックが実行されます
  • 大量のデータを削除する際に非常に便利ですが、処理時間が長くなる可能性があるという欠点があります
# 例:名前が 'John' のすべてのユーザーを削除
User.where(name: 'John').destroy_all

2. transaction メソッド

  • transaction メソッドは複数のデータベース変更作業を1つの作業単位にまとめて処理します
  • すべての作業が成功裏に完了するか、失敗した場合はすべての作業を元の状態にロールバックすることができます
# 例:2人のユーザーを作成するトランザクション
User.transaction do
  User.create!(name: 'Alice')
  User.create!(name: 'Bob')
end

0개의 댓글

관련 채용 정보