在我的控制,我有一些代碼如下所示:Ruby on Rails:我如何捕獲ActiveRecord :: Rollback?
@mymodel.transaction do
for a in arr
@mymodel.some_method(a)
end
end
在@爲MyModel#some_method我可以拋出一個ActiveRecord::Rollback
例外,它在DB做的事情需要做,但是我再簡單地得到一個HTTP 500無法捕捉異常,讓用戶以優雅的方式知道出了什麼問題。
我試過用@ mymodel.transaction做一個開始/救援塊,但那也不行。捕捉異常的最佳方法是什麼,以便我可以向用戶提供正確的視圖?
事務塊沒有捕獲回滾異常嗎?這就是它應該做的... – Matchu 2010-09-12 02:32:26