2010-07-17 140 views
0

当我点击“关于您的应用程序的环境”按钮上的“欢迎”您的骑乘导航页面,这发生在我的服务器控制台。Ruby on Rails Mongrel错误

** Starting Mongrel listening at 0.0.0.0:3000 
** Starting Rails with development environment... 
** Rails loaded. 
** Loading any Rails specific GemPlugins 
** Signals ready. INT => stop (no restart). 
** Mongrel 1.1.5 available at 0.0.0.0:3000 
** Use CTRL-C to stop. 
Sat Jul 17 02:24:28 -0400 2010: Error calling Dispatcher.dispatch #<NoMethodErro 
r: You have a nil object when you didn't expect it! 
You might have expected an instance of Array. 
The error occurred while evaluating nil.split> 
C:/INSTAN~1.0-W/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_controll 
er/cgi_process.rb:52:in `dispatch_cgi' 
C:/INSTAN~1.0-W/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_controll 
er/dispatcher.rb:101:in `dispatch_cgi' 
C:/INSTAN~1.0-W/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_controll 
er/dispatcher.rb:27:in `dispatch' 
C:/INSTAN~1.0-W/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ 
lib/mongrel/rails.rb:76:in `process' 
C:/INSTAN~1.0-W/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ 
lib/mongrel/rails.rb:74:in `synchronize' 
C:/INSTAN~1.0-W/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ 
lib/mongrel/rails.rb:74:in `process' 
C:/INSTAN~1.0-W/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ 
lib/mongrel.rb:159:in `process_client' 
C:/INSTAN~1.0-W/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ 
lib/mongrel.rb:158:in `each' 
C:/INSTAN~1.0-W/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ 
lib/mongrel.rb:158:in `process_client' 
C:/INSTAN~1.0-W/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ 
lib/mongrel.rb:285:in `run' 
C:/INSTAN~1.0-W/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ 
lib/mongrel.rb:285:in `initialize' 
C:/INSTAN~1.0-W/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ 
lib/mongrel.rb:285:in `new' 
C:/INSTAN~1.0-W/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ 
lib/mongrel.rb:285:in `run' 
C:/INSTAN~1.0-W/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ 
lib/mongrel.rb:268:in `initialize' 
C:/INSTAN~1.0-W/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ 
lib/mongrel.rb:268:in `new' 
C:/INSTAN~1.0-W/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ 
lib/mongrel.rb:268:in `run' 
C:/INSTAN~1.0-W/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ 
lib/mongrel/configurator.rb:282:in `run' 
C:/INSTAN~1.0-W/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ 
lib/mongrel/configurator.rb:281:in `each' 
C:/INSTAN~1.0-W/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ 
lib/mongrel/configurator.rb:281:in `run' 
C:/INSTAN~1.0-W/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/mon 
grel_rails:128:in `run' 
C:/INSTAN~1.0-W/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/../ 
lib/mongrel/command.rb:212:in `run' 
C:/INSTAN~1.0-W/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.5-x86-mswin32-60/bin/mon 
grel_rails:281 
C:/INSTAN~1.0-W/ruby/bin/mongrel_rails:19:in `load' 
C:/INSTAN~1.0-W/ruby/bin/mongrel_rails:19 

这里是版本

C:\InstantRails-2.0-win\rails_apps>rails -v 
Rails 2.3.8 

C:\InstantRails-2.0-win\rails_apps>ruby -v 
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32] 

C:\InstantRails-2.0-win\rails_apps>gem -v 
1.3.7 

C:\InstantRails-2.0-win\rails_apps>gem install mongrel 
Successfully installed mongrel-1.1.5-x86-mswin32-60 
1 gem installed 
Installing ri documentation for mongrel-1.1.5-x86-mswin32-60... 
Installing RDoc documentation for mongrel-1.1.5-x86-mswin32-60... 
+0

窗户上的导轨是一个crapshoot。如果你能避免它,请这样做......当然,如果你不能,那么祝你好运! – rmk 2010-07-17 18:19:19

回答

0

我无法重现(我在1.9.1的mingw32就在这里),但cgi_process.rb线52呼唤

if headers.include?('Set-Cookie') 
    headers['cookie'] = headers.delete('Set-Cookie').split("\n") 
end 

也许尝试在environment.rb中检查您的会话密钥和Cookie设置,然后尝试运行ruby脚本/服务器webrick(而不是mongrel)来查看是否是问题所在。

我也知道,如果您没有在database.yml中创建或设置数据库,那么“关于您的应用程序”链接就会爆炸,因此请检查该链接。

0

这个问题在很长的篇幅讨论on the Rails bugtracker。最终的解决方案似乎是“与时俱进”并转向Rails 3.x,但对于我们这些还不能完成的人来说,有一个解决方法。

您可以将此mongrel.rb下载到您的config/initializers目录中。这似乎使页面加载,但资源(样式表,JavaScript)似乎并未加载。我正在进一步调查,但想把它作为正确方向的快速指示器扔出去。

我会更新这个答案,因为我了解更多。