我遇到迁移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
为什么没有追溯以及如何解决这个问题?
答案 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方法。