Railsでトランザクションを使用する
Ruby on Railsでトランザクションを使用する場合は「ActiveRecord::Base.transaction」を使用します。
次例ではquestionモデル(questionsテーブル)、answerモデル(answersテーブル)を保存しています。「save」ではなく「save!」ですので保存に失敗すると例外が発生します。
ActiveRecord::Base.transaction do question.save! answer.save! end
トランザクション内で例外が発生すると、自動的にロールバック。正常に実行されると自動的にコミットされます。
スポンサーリンク
関連記事
- Rails + JQuery + AjaxでCRUDのサンプルプロジェクト [Hello World]
- Active Storageを使用して添付ファイル(アップロード)を簡単に管理する
- Railsアプリを最小メモリで起動する
- Rails6のプロジェクト作成時の「RAILS_ENV=development environment is not defined in config/webpacker.yml, falling back to production environment」のエラー対策
- Active StorageのダウンロードURLを変更する[/rails/active_storage/blobs]
公開日:2019年10月12日
記事NO:02791