如何在Heroku上使用GitHub中的gem?

时间:2013-07-17 07:57:14

标签: ruby git heroku gem bundler

我已将github上的redis存储库分配到https://github.com/lmirosevic/redis-rb

我已将其添加到我的Gemfile

gem 'redis', :github => 'lmirosevic/redis-rb'

我需要在我的Sinatra应用程序中使用gem:

require 'redis'

然而,它失败并出现以下错误:

/app/vendor/ruby-2.0.0/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': cannot load such file -- redis (LoadError)

有什么可能出错的建议吗?好像它应该有效!

修改

我应该注意bundler阶段很好。问题似乎在需求步骤中。 Bundler给了我这个输出:

Using redis (3.0.4) from git://github.com/lmirosevic/redis-rb (at master)

我还应该说我的目录结构是这样的。不确定这是否有所作为。

/
  .env
  Gemfile
  Gemfile.lock
  Procfile
  /lib
    my_sinatra_app.rb
  /config
    ...

1 个答案:

答案 0 :(得分:1)

你必须

require 'bundler/setup'

在您的应用程序中,否则您实际上并没有使用bundler:这可以确保加载的gem版本是gemfile中的版本,并为未全局安装的任何内容设置加载路径。

调用Bunder.setup可以控制使用哪些组,但如果只使用默认组就可以了,那么就不需要这样做了。

如果您没有设置bundler,那么您的gemfile用于安装所需版本的gem,但随后不再使用bundler - 您的应用程序将使用任何gems安装,版本是否匹配并且您赢了无法使用未安装在默认gem载入路径中的gem。