在我的 RoR 应用程序开发机器(本地服务器、OSX 10.8.1、Ruby 1.9.3、Rails 3.2.8)上,一些奇怪的东西开始凭空出现(当然……):
Rails 服务器崩溃(所有路由都被杀死,服务器重启是让它再次工作的唯一方法),并出现以下日志条目:
SystemStackError (stack level too deep):
actionpack (3.2.8) lib/action_dispatch/middleware/reloader.rb:70
Rendered /Users/dekay/.rvm/gems/ruby-1.9.3-head@global/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.9ms)
Rendered /Users/dekay/.rvm/gems/ruby-1.9.3-head@global/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.2ms)
Rendered /Users/dekay/.rvm/gems/ruby-1.9.3-head@global/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (14.7ms)
我用谷歌搜索发现 SystemStackError 通常是由于无限循环造成的,但据我所知,我的代码中没有这样的循环。并且错误似乎不在应用程序逻辑的某个步骤中。
服务器崩溃与我的操作之间的唯一关联如下:
- 更改应用程序中的一些代码
- 重新加载应用程序的当前网页
- 繁荣,服务器不见了,错误消息。
在此之后没有页面工作,错误是:
路由错误
没有路线匹配 [GET] "/"
尝试运行 rake 路线以获取有关可用路线的更多信息。
任何人都可以指出我调试这个的正确方向吗?PS:我怀疑它发生在粗心的“捆绑更新”之后。这可以吗?