2010-07-17 162 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)似乎並未加載。我正在進一步調查,但想把它作爲正確方向的快速指示器扔出去。

我會更新這個答案,因爲我瞭解更多。