【发布时间】:2013-07-06 18:50:13
【问题描述】:
我正在使用:ruby-1.9.3-p392 和 sinatra-1.4.3。
当我运行我的文件时,我得到了这个错误:
/home/belka/.rvm/gems/ruby-1.9.3-p392@Rails3.2.13/gems/sinatra-1.4.3/lib/sinatra/base.rb:1408:in `run!': undefined method `run' for HTTP:Module (NoMethodError)
from /home/belka/.rvm/gems/ruby-1.9.3-p392@Rails3.2.13/gems/sinatra-1.4.3/lib/sinatra/main.rb:25:in `block in <module:Sinatra>'
我的代码是 sinatra 新手最简单的代码 (hello.rb):
require 'rubygems'
require 'sinatra'
get '/' do
'Hello World!'
end
【问题讨论】:
-
你能显示你用来运行它的命令吗?此外,您不需要
require 'rubygems',请参阅gist.github.com/rtomayko/54177。 -
我正在使用这个命令来运行我的 .rb 脚本:ruby hello.rb
-
当您尝试启动服务器时,您似乎以某种方式加载了一个名为
HTTP的模块。你的问题看起来有点像stackoverflow.com/questions/17334734/…,虽然我看不出你发布的代码会发生这样的事情。 -
您可以尝试使用 Bundler 对其进行沙盒处理。添加一个 Gemfile,其中唯一的 gem 是
gem "sinatra",然后在 Hello World 项目的目录中运行bundle install --binstubs --path vendor。然后尝试通过bundle exec ruby hello.rb运行脚本。如果这样可行,那么您在该 RVM@Rails gemset 中安装的 gem 有问题。