我在迁移 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/ 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 方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)