如何在Rails 3应用程序中将gem添加到我的vendor / cache目录?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Rails 3应用程序中将gem添加到我的vendor / cache目录?相关的知识,希望对你有一定的参考价值。

我使用EngineYard,我的部署失败了。我收到这条消息:

Some gems seem to be missing from your vendor/cache directory.
Could not find rspec-core-2.6.0.rc2 in any of the sources

如何确保这些宝石进入该目录?

答案

Bundler附带一个显式创建此缓存的命令

bundle package

完成此捆绑后,安装将检查并保持供应商/缓存目录为最新。

如果你想在没有检查rubygems的情况下在机器上安装gem,你就可以运行了

bundle install --local

但是,请注意,如果您经常升级gems(就像我每次发布Rails的子程序时那样),您的供应商/缓存可以快速增长。

我当前项目的git存储库是80mb,其中超过30mb是存储在供应商/缓存中的数据。

加速部署似乎是一个好主意,但总的来说它只是使我们的存储库更大。

另一答案

如果其他人在使用Capistrano进行部署时遇到这种情况,这就解决了它:https://github.com/carlhuda/bundler/issues/1454

在我的情况下,有一个空的供应商/缓存目录导致问题。

解决方案是从版本控制和commit + deploy中删除(不只是忽略!)供应商/缓存目录的内容。

另一答案

捆绑包而不安装下载宝石。

bundle package --no-install
另一答案

我想通了。我输入了:

bundle

在命令行,它添加了缺少的宝石。

以上是关于如何在Rails 3应用程序中将gem添加到我的vendor / cache目录?的主要内容,如果未能解决你的问题,请参考以下文章

Rails 5 - 使用 Audited gem 查看更改

具有资产的 Rails gem 不会添加到 config.assets.paths

Rails 5 - 如何删除 twitter-bootstrap-rails gem 并手动安装

Rails - @import 和 *= 要求之间的区别?

Ruby on Rails 的社交媒体共享按钮 Gem

Rails 4 - 具有简单形式的依赖字段的 JS