Rails 3.2.13,500开发错误,没有日志

我在迁移rails 2.x时遇到了问题 – > 3.2.13在某些时候,在修复了一些问题后,我Completed 500 Internal Server Error in 76ms而没有任何回溯。

development.rb

 config.consider_all_requests_local = true config.action_controller.perform_caching = false 

为什么没有追溯以及如何解决这个问题?

你可能已经解决了,但我想分享几个小时调试这个问题,因为它可能非常烦人。 简而言之,我遇到了同样的问题 – 500内部服务器错误,没有任何抛出exception的日志。 它只发生在动作视图模板中抛出的exception – 任何ActionView::Template::Errorexception。 例如,缺少部分无效路线。

我的具体问题是使用这个ruby统计模块:

http://derrick.pallas.us/ruby-stats/

直接在initializers目录中,它在rails 2.x中运行良好。 它定义了Array.sum方法,该方法已在Enumerable.sum下的rails 3中定义。 重新定义的问题是Array.sum不再适用于字符串数组,这是rails试图用ActionView::Template::Error.source_extract方法做的事情 – 当试图在模板中提取错误的来源时,它使用以错误方式重新定义的Enumerable.sum方法。 因此,发生了另一个exceptionTypeError: cannot convert String into Fixnum并且未记录原始exception,也没有记录新exception。 我不得不进行回溯并通过许多内部调用来查看问题所在。

因此,对于没有看到ActionView模板中抛出的实际exception的所有人,请检查是否未重新定义rails内部使用的rails方法。