QA@IT

特定の環境だけにインストールしたいgemがある

4964 PV

Ruby on Railsを利用してHerokuにアプリケーションを作成しようとしています。

rails new MyApp であたらしくRailsアプリケーションを作成し、その後Herokuでデータベースを利用するために、

group :production do
  gem 'pg'
end

Gemfile に追記しました。再度、手元で bundle installをすると追加したgemのインストールの段階でエラーになってしまいます。

開発環境では引き続きsqlite3を利用し、Heroku上でのみ PostgreSQLを使うようにしたいのですがどうしたらよいですか?

回答

--withoutオプションを利用します。

質問の例の場合、bundle install --without productionとすることで production でグルーピングされたgemはインストールされなくなります。複数のグループを除外したい場合は bundle install --without foo:var のようにカンマで区切って複数指定することができます。

また、毎回--withoutオプションを指定するのが面倒な場合は、.bundle/config

BUNDLE_WITHOUT: production

と書いておくと便利です。

編集 履歴 (0)
  • .bundle/config ファイルは --without オプションを付けて bundle install を実行すると自動的に作成されると思います。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。