我已将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
...
答案 0 :(得分:1)
你必须
require 'bundler/setup'
在您的应用程序中,否则您实际上并没有使用bundler:这可以确保加载的gem版本是gemfile中的版本,并为未全局安装的任何内容设置加载路径。
调用Bunder.setup
可以控制使用哪些组,但如果只使用默认组就可以了,那么就不需要这样做了。
如果您没有设置bundler,那么您的gemfile用于安装所需版本的gem,但随后不再使用bundler - 您的应用程序将使用任何gems安装,版本是否匹配并且您赢了无法使用未安装在默认gem载入路径中的gem。