例子:爲什麼持續?在ActiveRecord :: Rollback之後返回true?
BillingProfile.transaction do
if @billing_profile.save
unless SomeService.do_something # returns false and rollback occurs
raise ActiveRecord::Rollback
end
end
end
@billing_profile.persisted? # Still return true, despite rollback
@billing_profile.id # Is set, despite rollback
爲什麼不@billing_profile的狀態反映該紀錄是回滾?
這是一個問題,因爲記錄在回滾後無法創建。
您使用的是哪個版本的Rails?我不記得當我能夠複製您的問題時,我嘗試了這個版本。但我現在在軌道2和3.2上嘗試它,但我得到了適當的回滾。 – jvnill
Rails 4.我將此報告爲ActiveRecord中的一個錯誤,該錯誤現在已經修復https://github.com/rails/rails/issues/13744 – mwalsher