2010-05-02 102 views
1

我很難讓Sinatra在我的本地設置Ubuntu Karmic 9.10上運行。當我有需要「Sinatra的越來越拋出的錯誤是:錯誤需要Sinatra寶石

NoMethodError: undefined method `[]' for nil:NilClass 
from /usr/local/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:891:in `compile' 
from /usr/local/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:883:in `gsub' 
from /usr/local/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:883:in `compile' 
from /usr/local/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:856:in `route' 
from /usr/local/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:838:in `get' 
from /usr/local/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:1077 
from /usr/local/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:929:in `configure' 
from /usr/local/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:1076 
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' 
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' 
from /usr/local/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra.rb:4 
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require' 
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require' 
from (irb):2 
from :0 

我已經試過:

  • 卸載/重裝西納特拉
  • 更新所有的寶石
  • 確保所有的依賴關係(機架)

任何想法?非常感謝您的時間和幫助!

+0

irb看到的第一行是什麼? – Fred 2010-05-02 02:15:30

+0

需要'rubygems' – Dan 2010-05-02 03:56:34

+0

你運行的是什麼版本的ruby? – Alex 2010-05-04 14:44:47

回答

1

這是一個問題,顯然只有在Linux上有1.8頭。它與正則表達式匹配有關。如果你看看代碼:path確實匹配/((:\w+)|[\*#{special_chars.join}])/,但$2nil,即使它應該是一個字符串。

我建議現在切換你的ruby版本。

+0

謝謝 - 更改爲紅寶石1.8.7似乎已經修復它。 – Dan 2010-05-05 13:38:55