Как указать файлу Gem использовать определенную локальную копию gem

#ruby-on-rails #file #path #gem

#ruby-on-rails #файл #путь #rubygems

Вопрос:

Допустим, у меня есть gem, который счастливо живет в:

  1. /MyPath/MyGem.gem

И я хочу использовать локальный и уникальный gem, а не версию gem с Github или откуда бы он ее ни извлекал.

Как мне указать, что я хочу использовать gem "mygem" из /MyPath/MyGem.gem

Ответ №1:

Попробуйте, в вашем Gemfile :

 gem "mygem", :path => "/MyPath/MyGem.gem"
  

Обратите внимание, что, вероятно, лучше всего использовать там относительную ссылку, например:

 gem "mygem", :path => "vendor/MyPath/MyGem.gem"
  

Комментарии:

1. У меня не сработало. Он пытается интерпретировать:path как путь к каталогу.

2. Попробуйте удалить .gem бит в пути.

3. вы должны ссылаться на всю папку, то есть на ту, внутри которой находится .gem.

Ответ №2:

Вы можете сделать это с помощью gem 'gemname', :path => "/your/path/here" Это очень полезно, когда вы создаете локальные gem-ы для разработки или если у вас есть собственный локальный форк gem.

Ответ №3:

Я сделал это, как сказал Jits, но это не сработало. Похоже, что rails ожидает указать путь к папке вместо пути .gem.

У меня это сработало

 gem "mygem", :path => "vendor/gems/mygemfolder/"
  

Если у вас это работает, но вы не можете выполнить развертывание в heroku (как это случилось со мной), вам нужно указать версию gem:

 gem 'mygem', '= x.x.x', :path => 'vendor/gems/mygemfolder/'