使用捆绑器安装 gem 时出现神秘的 LoadError

Mysterious LoadError on installed gem with bundler

下面的终端会话解释了这个问题。我不明白我怎么可能在已安装的 gem.

上遇到加载错误

未加载的 sailthru gem 是我今天安装的,它可能是相关的。我确认它安装在与我的其他 gem 相同的位置,并且我还尝试重新启动终端应用程序。我在 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> 

没有 sailthru 文件需要。

你应该看看project page

require 'sailthru'

应该是

require 'sailthru/client'

希望这对您有所帮助。

编辑

刚刚注意到你给出 irb 输出的最后一部分。

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

中使用

要解决此问题(如果您需要 sailthru-client gem 在您的应用程序中。将 gem 'sailthru-client' 添加到您的 gem 文件。执行 bundle install,然后 运行 又是你的 bundle exec

在那之后你不应该看到那个错误。记住。 bundle exec 仅使用 Gemfile.

中指定的 gem 库