プロジェクトで使用されているローカルで作業している宝石があります。
を使用して gem の場所を指定するpath
と、変更を加えることができ、プロジェクトは新しいコードを取得します。
gem 'example', :path => "~/path/to/gems/example"
しかし、Heroku にプッシュすると、Heroku がローカル マシンの gem ソースにアクセスできないため、バンドルが失敗します。
そのため、gem ソースをリモート リポジトリにプッシュして、gem ソースをそこに向けることができます。
gem 'example', :github => 'example/example', :branch => 'example_feature'
ただし、変更をこのレポにプッシュしてから、gem を更新してプロジェクトの新しい変更を取得する必要があります。
$ cd ~/path/to/gems/example
$ git c -a -m "Update gem"
$ git push origin example_feature
$ cd ~/path/to/projects/project
$ gem update example
ローカル リポジトリにローカル オーバーライドを設定することで、この問題を少し軽減できます。
$ bundle config local.example ~/path/to/gems/example
しかし、プロジェクトに新しい変更が必要な場合は、変更したファイルを git に追加してコミットし、$ gem update example
gem ソースを変更するたびに追加する必要があります。
プロジェクトでローカルの変更を自動的に取得する方法はありますか (使用する場合と同様path
)、本番環境ではリモート リポジトリを引き続き使用しますか?