Quantcast
Viewing all articles
Browse latest Browse all 100

Railsのトランザクションと例外処理

Railsのトランザクションと例外処理がよく分からなかったので、調べました。

app/controllers/user_controller.rb
def create
  ActiveRecode::Base.transaction do
    # createではなく、create!にすると保存できなかったときに例外が発生します。
    @user = User.create!(user_params)

  recue => e 
  # バリデーションエラーだけ拾いたい場合は次の行
  # (ActiveRecord:RecodeInvalid => e) 
    # error処理
  end

end

recueはphpでいうとexceptionみたいな感じでした。

参考サイト

rails save! create! update!のバリデーション例外を捕捉する - Qiita

【Rails】例外処理の書き方(begin, rescue, raise,retry, ensure) - Qiita

rubyの例外についてまとめてみた - Qiita

ActiveRecord::Base.transactionで囲うタイミング - Qiita


Viewing all articles
Browse latest Browse all 100

Trending Articles