何してたの
transaction内でreturnを書てました。
rollbackされない
user.rb
def update_name(user_id, name)
user = User.where(id: user_id).first
user.name = name
User.transaction do
user.save!
return
end
end
rollbackする
user.rb
def update_name(user_id, name)
user = User.where(id: user_id).first
user.name = name
User.transaction do
user.save!
raise ActiveRecord::Rollback
end
end
ちゃんとraiseしないとrollbackしませんよと。
考えてみると当たり前なのだけど、引っかかってしまったのでメモ。
参考資料