Ответ 1
TL; DR: Это зависит от вас, но я рекомендую хранить их в git.
То, что vendor/cache
делает, позволяет связывать, особенно пакет развертывания, чтобы пропустить загрузку драгоценных камней из rubygems. Это значительно снижает зависимость от рубигемов.
В развертывании вы можете указать --local
в bundler, чтобы полностью удалить всю зависимость от rubygems.org, но только если эти файлы отмечены в git.
Это ценно, потому что, хотя rubygems.org - фантастический сервис, он не защищен от сбоев. Без этих кешированных камней и сбоев на rubygems.org могло бы означать, что вы не сможете развертывать новые версии, перераспределять или масштабировать до новых машин, пока рубигемы не вернутся.
Существует также аргумент о том, что поставщик/кеш может использоваться как расширение Gemfile.lock, за исключением того, что дескрипторы развертывания являются бинарными, идентичными тем, которые используются в разработке, а не только идентичны версии.
Итак, по практическим соображениям, чтобы ваша способность функционировать как практическое, работающее приложение независимо от rubygems.org: сохраните их в своем репозитории git.