加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 机械化和Sinatra冲突

发布时间:2020-12-17 03:23:05 所属栏目:百科 来源:网络整理
导读:我使用Mechanize作为命令行实用程序编写了一个简单的Web爬网程序.然后我决定使用Sinatra创建Web应用程序,但在尝试运行本地Web服务器时遇到了这个错误: /home/nazar/.rvm/gems/ruby-2.0.0-p195/gems/sinatra-1.4.2/lib/sinatra/base.rb:1569:in `run!': unde
我使用Mechanize作为命令行实用程序编写了一个简单的Web爬网程序.然后我决定使用Sinatra创建Web应用程序,但在尝试运行本地Web服务器时遇到了这个错误:

/home/nazar/.rvm/gems/ruby-2.0.0-p195/gems/sinatra-1.4.2/lib/sinatra/base.rb:1569:in `run!': undefined method `run' for HTTP:Module (NoMethodError)
from /home/nazar/.rvm/gems/ruby-2.0.0-p195/gems/sinatra-1.4.2/lib/sinatra/main.rb:25:in `block in <module:Sinatra>'

源代码很简单:

require 'sinatra'
require 'mechanize'

get '/' do
   # mechanize stuff
end

我经历了一些调查,并设法发现2个宝石分别工作正常,但只有它们合并才会导致问题.任何人都可以指出问题可能是什么?

解决方法

很可能你是最重要的方法,如机械化.尝试将Sinatra应用程序包装到应用程序类中.这可能会解决问题.

require 'sinatra/base'

class MyApp < Sinatra::Base
  get '/' do
    # mechanize stuff
  end
end

在Sinatra documentation中了解有关该方法的更多信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读