4

好吧,我正在尝试通过“机架”运行一个简单的 Web 服务器。所以这是我的程序:

require 'rubygems'
require 'rack'

class HelloWorld
  def call(env)
    [200, {"Content-Type" => "text/html"}, ["Hello Rack!"]]
  end
end

Rack::Handler::Mongrel.run HelloWorld.new, :Port => 9292

如果我在控制台中运行它,它工作正常。如果我在 Eclipse 中运行它,最终会出现错误:

/Users/MY_SUPER_SECRET_USER/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- rack (LoadError)
    from /Users/MY_SUPER_SECRET_USER/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from /Users/MY_SUPER_SECRET_USER/Sites/service/service.rb:2:in `<main>'

正在工作的那个是这样称呼的:

MY_SUPER_SECRET_USER@MacBook-Pro:~/Sites/service $ which ruby
/Users/MY_SUPER_SECRET_USER/.rvm/rubies/ruby-1.9.3-p194/bin/ruby
MY_SUPER_SECRET_USER@MacBook-Pro:~/Sites/service $ ruby service.rb

然后,当我尝试打开localhost:9292它时,它会显示预期的“Hello Rack”代码。

我在 Mac OS X 10.8 上,通过 rvm 安装了 ruby​​ 1.9.3(这一定很明显)。我的“机架”包已安装sudo gem install rack

如您所见,Eclipse 配置了相同的 ruby​​ 可执行文件。任何建议都会有很大帮助!

4

2 回答 2

0

线

custom_require.rb:36:in `require': cannot load such file -- rack (LoadError)

意味着它找不到您安装机架 gem 的位置。在互联网上阅读,我一次又一次地看到使用sudo似乎不起作用。尝试安装它,看看是否可以修复它。

$ gem install rack(没有须藤)

于 2012-10-30T10:09:26.920 回答
0

我遇到了同样的问题,试图在 Eclipse 中要求它无法识别的 gem,即使一切似乎都配置正确(gem 已安装,Eclipse 指向正确的 Ruby 解释器等)。

GEM_HOME我最终通过向“调试/运行配置”的“环境”选项卡添加和GEM_PATH变量来使其工作。

更详细的答案在这里:https ://stackoverflow.com/a/28419300/525338

于 2015-02-09T21:06:40.117 回答