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

时间:2013-06-03 06:51:22

标签: ruby-on-rails ruby ruby-on-rails-3

我遇到迁移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

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

1 个答案:

答案 0 :(得分:4)

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

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

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

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

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