Ruby 服务器不会以 neography 开头

标签 ruby macos rubygems sinatra neography

我有 ruby​​ 文件,我在我的 mac 上运行 OSX 10.9,它是我都安装的 sinatra 和 geography 的组合。当我在文件上使用 require 'sinatra' 时,一切都很好,但是当我插入 require 'neography' 时,它在尝试运行文件时给了我这个错误。

/Users/AJ/.rvm/gems/ruby-2.1-head/gems/sinatra-1.4.4/lib/sinatra/base.rb:1488:in `start_server': undefined method `run' for HTTP:Module (NoMethodError)
        from /Users/AJ/.rvm/gems/ruby-2.1-head/gems/sinatra-1.4.4/lib/sinatra/base.rb:1426:in `run!'
        from /Users/AJ/.rvm/gems/ruby-2.1-head/gems/sinatra-1.4.4/lib/sinatra/main.rb:25:in `block in <module:Sinatra>'

此错误的可能原因是什么?提前致谢

最佳答案

地理学 depends on httpclient ,这又是defines a module named HTTP .

当 Sinatra 尝试确定使用哪个服务器时,它尝试的选项之一是 net-http-server ,其 Rack 处理程序类也被命名为 HTTP。这会导致名称冲突,其中 Sinatra 认为 httpclient 中的 HTTP 模块是 net-http-server 并尝试这样运行它,从而导致您看到的错误。

如果您安装了另一台服务器,例如Thin , 它可能会在 HTTP 之前被检测到,所以你不会看到这个错误,但你可能会更好 explicitly setting the server to use .你可以添加类似的内容

set :server, thin

到您的应用程序文件以将 Thin 指定为您的服务器(您需要先安装 thin gem——您也可以使用 Webrick)。如果需要,您也可以在命令行上指定:ruby my_app.rb -s thin,但我认为您最好将它添加到您的代码中以避免将来出现问题。

关于Ruby 服务器不会以 neography 开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21465480/

相关文章:

OS X 上的 Python : Getting local date time patterns

ruby-on-rails-3 - 安装 mysql2 gem 遇到错误

ruby - 如何按照它们在字符串 y 中出现的顺序对字符串 x 进行排序?

ruby-on-rails - Rails 有很多关联

bash - 在脚本中使用 sed 将文件内容替换为行

cocoa - OS X Cocoa 中的交互式曲线编辑器

ruby - 无法让 google-appengine 让 Jruby 工作

ruby - 将 Tumblr 迁移到 octopress (Jekyll) - 在错误的目录中

ruby-on-rails - 在没有数据库交互的情况下使用 Rails 模型

ruby - 如何使用 Nokogiri 将两个 XML 文件合并为一个文件?