Ответы:
Я считаю, что вы можете сделать это:
gem "foo", path: "/path/to/foo"
spring stopпосмотреть, действительно ли это проблема.
В дополнение к указанию пути (как упоминал Джимми), вы также можете заставить Bundler использовать локальный гем для вашей среды только с помощью следующей опции конфигурации:
$ bundle config local.GEM_NAME /path/to/local/git/repository
Это очень полезно, если вы разрабатываете два драгоценных камня или приложение с гемами и рельсами параллельно.
Обратите внимание, что это работает только тогда, когда вы уже используете git для своей зависимости, например:
# In Gemfile
gem 'rack', :github => 'rack/rack', :branch => 'master'
# In your terminal
$ bundle config local.rack ~/Work/git/rack
Как видно на документах .
BUNDLE_PATH(сборка пакета для распространения). Делая то, что вы предложили, или ответ Джимми, он только делает using, и фактически не устанавливает в мою BUNDLE_PATHпапку. Я не смог понять это, какая-нибудь помощь?
bundle config --delete local.GEM_NAME
bundle config disable_local_branch_check trueили Bundler будет жаловаться на ветку. Однако будьте осторожны с этим, поскольку проверки должны предотвращать попадание неверных коммитов Gemfile.lock. Документы здесь: bundler.io/v1.12/git.html
Вы также можете ссылаться на локальный гем с помощью git, если вам довелось работать над ним.
gem 'foo',
:git => '/Path/to/local/git/repo',
:branch => 'my-feature-branch'
Затем, если это изменится, я бегу
bundle exec gem uninstall foo
bundle update foo
Но я не уверен, что всем нужно выполнять эти два шага.
bundle uninstall <gem> && bundle install , для каждого изменения, которое вы хотите отразить в своем приложении
Чтобы использовать локальное хранилище гемов в проекте Rails, выполните следующие действия:
Проверьте, является ли ваша папка gem хранилищем git (команда выполняется в папке gem)
git rev-parse --is-inside-work-treeПолучение пути к хранилищу (команда выполняется в папке gem)
git rev-parse --show-toplevelНастройка локального переопределения для приложения rails
bundle config local.GEM_NAME /path/to/local/git/repository
где GEM_NAMEимя вашего драгоценного камня и /path/to/local/git/repositoryвывод команды в точке2
В вашем приложении Gemfileдобавьте следующую строку:
gem 'GEM_NAME', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'Бег bundle installдолжен дать что-то вроде этого:
Using GEM_NAME (0.0.1) from git://github.com/GEM_NAME/GEM_NAME.git (at /path/to/local/git/repository)
где GEM_NAMEимя вашего драгоценного камня и /path/to/local/git/repositoryиз точки2
Наконец, запустите bundle list, а не gem listвы должны увидеть что-то вроде этого:
GEM_NAME (0.0.1 5a68b88)
где GEM_NAMEимя вашего драгоценного камня
Несколько важных случаев, которые я наблюдаю, используя:
Rails 4.0.2
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
Ubuntu 13.10
RubyMine 6.0.3
RubyMine, не показывает локальные драгоценные камни в качестве внешней библиотеки. Более подробную информацию об ошибке можно найти здесь и здесьstop/startнужен сервер railsЕсли я изменяю versionсамоцвет, stopping/startingсервер Rails выдает мне ошибку. Чтобы это исправить, я указываю версию gem в приложении rails Gemfileследующим образом:
gem 'GEM_NAME', '0.0.2', :github => 'GEM_NAME/GEM_NAME', :branch => 'master'Вы можете ссылаться на драгоценные камни с источником: source: 'https://source.com', git repository (:github => 'git/url')и с локальным путем :path => '.../path/gem_name'.
Вы можете узнать больше о Gemfiles и о том, как использовать их в этой статье.