在我的控制,我有一些代码如下所示: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