【发布时间】:2011-04-11 05:54:23
【问题描述】:
在我的控制器中,我的代码如下所示:
@mymodel.transaction do
for a in arr
@mymodel.some_method(a)
end
end
在@mymodel#some_method 中,我可以抛出ActiveRecord::Rollback 异常,该异常在数据库中完成了它需要做的事情,但是我只是得到一个HTTP 500 并且无法捕获异常以优雅地让用户知道出了什么问题。
我尝试将 @mymodel.transaction 包装在 begin/rescue 块中,但这也不行。捕获异常以便向用户呈现正确视图的最佳方法是什么?
【问题讨论】:
-
事务块没有捕获回滚异常吗?这就是它应该做的……
标签: ruby-on-rails ruby