未定义的方法'request_uri'

时间:2012-01-24 16:49:01

标签: ruby rubygems

我正在使用Shopsense Ruby Gem但是我无法使用gem。完全按照test提出请求时收到以下错误:

/Users/rudolph9/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:455:in `block in get_response': undefined method `request_uri' for #<URI::Generic:0x007fd5b3a66810> (NoMethodError)
    from /Users/rudolph9/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:745:in `start'
    from /Users/rudolph9/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/net/http.rb:454:in `get_response'
    from /Users/rudolph9/.rvm/gems/ruby-1.9.3-p0/gems/Shopsense-0.1.1/lib/Shopsense.rb:76:in `do_search'
    from test_shopsense.rb:10:in `<main>'

但是,如果我克隆存储库,修改测试并直接需要源代码,测试工作正常,如下所示:

1 #!/usr/bin/env ruby¬                                                                                                                                                       
2 require 'rubygems'¬
3 #require 'Shopsense'¬
4 require '../lib/shopsense.rb'¬
.
.
.

使用gem自身的问题是什么?

1 个答案:

答案 0 :(得分:2)

您是否安装了较旧版本的gem,或者另一个名为Shopsense的gem?

有了你得到的错误,我怀疑这个问题与ruby有关,试图在你require 'Shopsense'时自动找到宝石并找到你想要的东西。当你require '../lib/shopsense.rb'时,它定义了一条特定的宝石路径,所以你总能得到你想要的宝石。

我对Shopsense没有任何经验,但您提供的链接看起来像版本0.1.0,而ruby解释器找到了Shopsense-0.1.1。我怀疑这个问题与此有关。事实上,您链接到的Shopsense的来源,第76行(错误在您的输出中)是一个空行。