質問: ``` bundle install --path vendor/bundle ``` でダウンロードしたgemfileを編集して、上書き保存しました。 ``` heroku push ``` したのですが、本番環境では、編集が反映されません。 gemを編集して、利用するにはどうしたら良いのでしょうか? 追記ーーーーーーーーーーーーーーーーーーーーーーー 「gemを編集して、利用する」は「Gemfileを編集して、ローカルでも本番環境でも目的のgemを使いたい」ということではなく、bundle installした個別のGemを編集したということです。
回答: いろいろと用語の使い方がおかしい(失礼)のでやりたいことと、困っていることがちょっと理解しにくいです。 * `bundle install`はGemfileに書かれたgem(Rubyのライブラリ)をインストールするコマンドです。(Gemfileがダウンロードされるわけではありません) * Gemfileを編集して上書き保存するということはつまり、使いたいgemを追加したり変更したりする作業です。 * Gemfileを変更したら再度`bundle install`を実行してください。そうでないとgemはインストールされません。 * 僕が知る限り、`heroku push`というコマンドはありません。`git push heroku master`のことでしょうか? * 「本番環境では、編集が反映されません。」の「編集が反映されない」という状況がよくわかりません。ローカル(手元のPC)ではちゃんと動いていたのに、本番環境では何かエラーが出るということでしょうか? * 「gemを編集して、利用する」は「Gemfileを編集して、ローカルでも本番環境でも目的のgemを使いたい」という理解であっていますか? とりあえず一般的な作業手順を載せておきますね。RailsをHerokuで動かすケースを想定します。 1. `rails new`でアプリケーションを新規に作成する 2. 使いたいgemを`Gemfile`に追記する 3. `bundle install`でgemをインストールする 4. 正しくgemが動作していることを確認する 5. `git commit`で変更内容をcommit(確定)する 6. `git push heroku master`でHerokuにデプロイする(Herokuのセットアップは完了している前提) 7. Herokuでもローカルと同様に動作することを確認する Railsチュートリアルのようなサイトを利用して、基本的な開発手順を一から確認しなおすのも有効だと思います。 それでも思ったように動かない場合は以下のような内容を追記してください。 * 変更前と変更後の`Gemfile`の内容(具体的にどんなgemを追加したのか) * `git push heroku master`した際に表示される出力内容全部 * うまく動かない場合の具体的な内容(エラー画面が出る、一応動いているがxxxな部分がローカルと異なる、等) * エラー画面が出る場合は`heroku logs`でエラーのスタックトレースも追記してください。 * 開発中に参考にしているネットの情報等があれば、それも追記してください。(このサイトと同じ手順でやっているつもりだがうまくいかない等) EDIT gemを編集とはつまり、gemのコードを書き換えたということですか? もしそうであれば、ローカルの変更はHerokuには反映されません。 Herokuにデプロイする際はrubygems.org等から新規にダウンロードされるためです。 もし独自に変更したいのであれば、目的のgemのコードを自分のgithubアカウントにフォークしてコードに変更を加え、それをgithubにpushします。 さらに、RailsのGemfileには自分のgithubにあるgemを使うように指定する必要があります。 こちらのサイトの内容が目的の内容に近いと思われます。 ただ、gemのフォークはオリジナルのアップデートにどうやって追従するか、といった問題があるので基本的に最後の手段だと思っています。 なので僕はできる限り避けようとしています。