Ruby on rails ';LoadError:无法加载此文件';本地宝石
我在Rails应用程序中使用本地gem(这里称为clearconnect),但在尝试要求它时收到以下错误: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是成功的,如果这有任何帮
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-如果这让您赢得了胜利,您可以始终将其标记为已回答:-)