我在迁移 rails 2.x -> 3.2.13 时遇到问题 在某些时候,在修复了一些东西之后,我Completed 500 Internal Server Error in 76ms
没有任何回溯。
发展.rb
config.consider_all_requests_local = true
config.action_controller.perform_caching = false
为什么没有回溯以及如何解决这个问题?
我在迁移 rails 2.x -> 3.2.13 时遇到问题 在某些时候,在修复了一些东西之后,我Completed 500 Internal Server Error in 76ms
没有任何回溯。
发展.rb
config.consider_all_requests_local = true
config.action_controller.perform_caching = false
为什么没有回溯以及如何解决这个问题?
你可能解决了它,但我想分享我关于这个问题的几个小时调试,因为它可能非常烦人。简而言之,我遇到了同样的问题 - 500 内部服务器错误,没有任何抛出异常的日志。它只发生在动作视图模板中抛出的异常 - 任何ActionView::Template::Error
异常。例如,缺少部分无效路线。
我的具体问题是使用这个 ruby 统计模块:
http://derrick.pallas.us/ruby-stats/
直接在初始化器目录中,这在 rails 2.x 中效果很好。它定义Array.sum
了已经在 rails 3 下定义的方法Enumerable.sum
。重新定义的问题在于它Array.sum
不再适用于字符串数组,这是 rails 试图用ActionView::Template::Error.source_extract
方法做的事情 - 当试图提取模板中的错误源时,它使用了Enumerable.sum
以错误方式重新定义的方法。因此,发生TypeError: cannot convert String into Fixnum
了另一个异常,并且没有记录原始异常,也没有记录新异常。我不得不进行回溯并通过许多内部调用来查看问题出在哪里。
因此,对于没有看到 ActionView 模板中抛出的实际异常的每个人,请检查您是否没有重新定义在 rails 内部使用的 rails 方法。