内容
Rails(に限りませんが)でif文の分岐ごとにトランザクションが必要な処理が記述されている場合、
保存の処理単位でtransactionで囲うのか、if文ごとtransactionを囲えば良いのか判断がつきません。
処理的な観点(ロールバックするときにif文が含まれていることが問題になるか)や、リーダブル的な観点でアドバイス頂きたいです。
- 処理単位のほう
ruby
1# 以下はコントローラ内での処理 2 3if 条件 4 ActiveRecord::Base.transaction do 5 # 複数のモデルに更新を掛ける処理 6 user.save_a! 7 end 8else 9 ActiveRecord::Base.transaction do 10 # 複数のモデルに更新を掛ける処理 11 user.save_b! 12 end 13end
- if文ごと囲うほう
ruby
1# 以下はコントローラ内での処理 2 3ActiveRecord::Base.transaction do 4 if 条件 5 # 複数のモデルに更新を掛ける処理 6 user.save_a! 7 else 8 # 複数のモデルに更新を掛ける処理 9 user.save_b! 10 end 11end

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。