Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如果使用begin…rescue并发生错误,是否仍会发生回滚?_Ruby On Rails_Error Handling_Transactions - Fatal编程技术网

Ruby on rails 如果使用begin…rescue并发生错误,是否仍会发生回滚?

Ruby on rails 如果使用begin…rescue并发生错误,是否仍会发生回滚?,ruby-on-rails,error-handling,transactions,Ruby On Rails,Error Handling,Transactions,我的rails应用程序中发生了一些奇怪的错误,我试图记录更好的错误,而不是我不关心的所有乘客信息。我想我应该使用一个Rescue子句和显式错误处理来完成这项工作,比如记录params散列。但我担心这是否会中断任何正在发生的回滚。就这一点而言,我假设在正常rails错误处理过程中发生错误时自动发生回滚,但我还没有在任何地方找到记录在案的回滚。我将Dreamhost与MySQL一起使用,所以我认为事务和回滚都发生在那里。这不是非常明智的做法(对代码进行大的拯救) 为什么不使用回程消音器?(来自Rai

我的rails应用程序中发生了一些奇怪的错误,我试图记录更好的错误,而不是我不关心的所有乘客信息。我想我应该使用一个Rescue子句和显式错误处理来完成这项工作,比如记录params散列。但我担心这是否会中断任何正在发生的回滚。就这一点而言,我假设在正常rails错误处理过程中发生错误时自动发生回滚,但我还没有在任何地方找到记录在案的回滚。我将Dreamhost与MySQL一起使用,所以我认为事务和回滚都发生在那里。

这不是非常明智的做法(对代码进行大的拯救)

为什么不使用回程消音器?(来自Rails 2.3)

发件人:

Rails会自动将消音器添加到 消除噪音中最常见的噪音 新的应用程序,并构建 config/backtrace_消音器.rb文件到 保留您自己的附加内容


如果您使用的是早期版本的Rails,请使用。

谢谢,这对嘈杂的stacktrace很有帮助,但不能回答有关回滚的原始问题;既然如此,为什么不建议在我的代码中加入一个大的开始拯救呢。。建议您重新提出错误。Rails处理一些特殊情况(例如ActiveRecord::RecordNotFound被解救用于公共请求,并返回404头)。