使用bundler安装的gem上的神秘LoadError

时间:2015-01-12 22:35:05

标签: ruby bundler rbenv

以下终端会话解释了该问题。我不明白我在安装的gem上遇到加载错误的可能性如何。

没有加载的sailthru宝石是我今天安装的东西,可能是相关的。我确认它安装在与我的其他宝石相同的位置,我也尝试重新启动终端应用程序。我在mac上使用rbenv。但是,我没有安装新版本的ruby至少几周,并且每天都在使用它,直到现在没有任何问题。

感谢您的帮助。

$ gem list | grep sailthru
sailthru (1.1.2)
sailthru-client (4.0.1, 2.0.0)
$ cat Gemfile | grep sailthru
gem 'sailthru'
$ cat Gemfile.lock | grep sailthru
    sailthru (1.1.2)
  sailthru
$ bundle exec thin start
Using rack adapter
/Users/jg/Dropbox/sinatra/app.rb:5:in `require': cannot load such file -- sailthru (LoadError)
$ irb
irb(main):001:0> require 'sailthru'
=> true
irb(main):002:0> 

1 个答案:

答案 0 :(得分:3)

无需sailthru个文件。

您应该查看project page

require 'sailthru'

应该是

require 'sailthru/client'

希望这有帮助。

修改

刚刚注意到您提供irb输出的最后一部分。

sailthru.rb文件是sailthru-client gem的一部分。它正在通过irb,因为irb未通过bundle exec加载。这意味着安装的每个gem都可以在irb中使用。

要解决此问题(如果您的应用需要sailthru-client个宝石。请将gem 'sailthru-client'添加到您的宝石文件中。执行bundle install,然后再次运行bundle exec

之后你不应该看到那个错误。记住。 bundle exec仅使用Gemfile中指定的gem库。