简体   繁体   English

要求Sinatra gem的错误

[英]Error in requiring Sinatra gem

I'm having a hard time getting Sinatra running on my local setup, Ubuntu Karmic 9.10. 我很难在我的本地设置Ubuntu Karmic 9.10上运行Sinatra。 The error getting thrown when I have require 'sinatra' is: 当我需要'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

I've tried: 我试过了:

  • Uninstalling/reinstalling Sinatra 卸载/重新安装Sinatra
  • Updating all gems 更新所有宝石
  • Ensuring all dependencies exist (rack) 确保所有依赖项都存在(机架)

Any ideas? 有任何想法吗? Your time and help is greatly appreciated! 非常感谢您的时间和帮助!

This is an issue apparently only coming up with 1.8-head on Linux. 这显然是一个问题,在Linux上只有1.8-head。 It is related to regexp matching. 它与regexp匹配有关。 If you take a look in the code: path does match /((:\\w+)|[\\*#{special_chars.join}])/ , but $2 is nil , even though it is supposed to be a String. 如果您看一下代码: path确实匹配/((:\\w+)|[\\*#{special_chars.join}])/ ,但是$2nil ,即使它应该是String。

I recommend switching your ruby version for now. 我建议暂时切换您的红宝石版本。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM