2010-04-16 40 views
1

我在我的Rails应用程序中发生了一些奇怪的错误,我试图记录更好的错误,而不是整个乘客的东西,我不在乎。我想我会用Rescue子句和显式错误处理来做到这一点,比如记录params散列。但我担心这是否会打断正在发生的任何回滚。对于这个问题,我假设当正常的导轨错误处理的一部分发生错误时自动发生回滚,但是我一直无法找到任何记录的地方。我在MySQL中使用Dreamhost,所以我认为事务和回滚正在发生。如果我使用begin ... rescue并发生错误,是否还会发生回滚?

回答

-1

这不是非常明智的做法(在您的代码上放置一个大的开始救援)。

为什么不使用回溯消音器? (来自Rails 2.3) http://afreshcup.com/home/2008/11/29/rails-23-backtrace-silencing.html

release notes

的Rails会自动添加到消音 摆脱在 新的应用程序中最常见的噪音,并建立 配置/ backtrace_silencers.rb文件 按住自己增加

如果您使用早期版本的Rails,请使用http://github.com/thoughtbot/quietbacktrace

+0

谢谢,这对嘈杂的堆栈跟踪很有帮助,但并未回答有关回滚的原始问题;对于这个问题,为什么在我的代码中放置一个大的开始救援是不明智的? – user26270 2010-04-23 17:31:06

+0

那么..只要你重新提出错误,这是明智的。 Rails处理一些特殊情况(EG为ActiveRecord :: RecordNotFound获取公共请求,并返回404头)。 – 2010-04-23 20:58:06