当我点击“欢迎”栏目中的“关于你的应用程序的环境”按钮时,我的服务器控制台会发生这种情况。
** 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 :(得分:0)
我无法重现(我正在使用Ruby 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中创建或设置数据库,我也知道“关于您的应用程序”链接会爆炸,所以请检查一下。
答案 1 :(得分:0)
我们会详细讨论这个问题on the Rails bugtracker。最终的解决方案似乎是“与时俱进”并转向Rails 3.x,但对于我们这些还不能做到的人来说,还有一个解决方法。
您可以将此mongrel.rb下载到config / initializers目录中。这似乎使页面加载,但资源(样式表,javascript)似乎没有加载。我正在进一步调查,但是想把它扔出去,作为一个正确方向的快速指针。
我将在了解更多信息时更新此答案。