【问题标题】:Error in requiring Sinatra gem需要 Sinatra gem 时出错
【发布时间】:2010-05-02 01:05:22
【问题描述】:

我很难让 Sinatra 在我的本地设置 Ubuntu Karmic 9.10 上运行。当我需要“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

我试过了:

  • 卸载/重新安装 Sinatra
  • 更新所有宝石
  • 确保所有依赖项都存在(机架)

有什么想法吗?非常感谢您的时间和帮助!

【问题讨论】:

  • irb 看到的第一行是什么?
  • 你运行的是什么版本的 ruby​​?
  • Error requiring Sinatra Gem 那是因为它已经消失了:news.google.com/…(我希望链接有效)

标签: ruby linux rubygems sinatra ubuntu-9.10


【解决方案1】:

这显然是仅在 Linux 上的 1.8-head 中出现的问题。它与正则表达式匹配有关。如果你看一下代码:path 确实匹配/((:\w+)|[\*#{special_chars.join}])/,但$2nil,即使它应该是一个字符串。

我建议现在切换你的 ruby​​ 版本。

【讨论】:

  • 谢谢 - 更改为 ruby​​ 1.8.7 似乎已修复它。
猜你喜欢
  • 1970-01-01
  • 2013-08-19
  • 1970-01-01
  • 2011-07-17
  • 1970-01-01
  • 2012-09-25
  • 2014-09-23
  • 1970-01-01
  • 2015-09-12
相关资源
最近更新 更多