Ruby on rails ';LoadError:无法加载此文件';本地宝石

Ruby on rails ';LoadError:无法加载此文件';本地宝石,ruby-on-rails,ruby,Ruby On Rails,Ruby,我在Rails应用程序中使用本地gem(这里称为clearconnect),但在尝试要求它时收到以下错误: LoadError: cannot load such file -- clearconnect 无论我在哪里尝试要求gem,都会发生这种情况。当问题最初出现时,“require”语句位于lib文件中,此后我尝试在“config/application.rb”中以及通过rails控制台请求它,但没有成功。通过控制台要求在我的应用程序的Gemfile中指定其他gem是成功的,如果这有任何帮

我在Rails应用程序中使用本地gem(这里称为clearconnect),但在尝试要求它时收到以下错误:

LoadError: cannot load such file -- clearconnect
无论我在哪里尝试要求gem,都会发生这种情况。当问题最初出现时,“require”语句位于lib文件中,此后我尝试在“config/application.rb”中以及通过rails控制台请求它,但没有成功。通过控制台要求在我的应用程序的Gemfile中指定其他gem是成功的,如果这有任何帮助的话

到目前为止我尝试/检查过的内容:

与my gem对应的.gem文件已放置在供应商目录中,以下行位于my gem文件中:

gem 'clearconnect', '0.0.1', :path => 'vendor'
更新Gemfile后运行bundle install会产生以下结果:

Using clearconnect (0.0.1) from source at vendor
“bundle exec gem list”列出了我的gem,正如从Rails控制台运行“gem.loaded_specs”一样

我创建了一个新的Rails应用程序,并以相同的方式包含了我的gem,但收到了相同的错误


在这一点上,我认为问题要么在于我在Gemfile中指定gem的方式,要么在于gem本身的问题(尽管它在本地没有问题)。gem可以在这里找到:。

您需要输入gem的完整路径,不仅仅是“vendor”,而是“vendor/gems/mygem VERSION”

从供应商处的源代码使用clearconnect(0.0.1)

除了在Gemfile中指定的路径的存在之外,不确认太多(通过更改路径以指向另一个位置并没有收到错误来确认)。用于验证gem是否已安装的其他点似乎以类似的方式运行,导致了真正的问题,即Bundler不支持在Gemfile[github issue]中指定本地.gem文件。问题中提到的解决方法:

将gem放入vendor/cache并运行(讽刺的是)“bundle install--无缓存”。

工作很好,我没有任何进一步的错误。我还能够将应用程序成功部署到Heroku,而无需任何其他配置

总之:

将要包含在应用程序中的.gem文件放在
vendor/cache
目录中。在应用程序的Gemfile中像normal(no:path)一样指定gem,确保显式地声明版本号。就我而言,这是:

gem'clearconnect',0.0.1'


运行
bundle安装--无缓存
(推理),问题应该得到解决。

我的gem位于供应商文件夹
vendor/clearconnect-0.0.1中。gem
我编辑了gem文件以包含文件本身,但在运行“bundle安装”时出现错误
../vendor/clearconnect-0.0.1.gem不存在
应该指定gem位于该目录的根目录中,但是,感谢您的建议。NP-如果这让您赢得了胜利,您可以始终将其标记为已回答:-)