Gemはすべてプロジェクトフォルダー内に保管しましょう
Gemをインストールするときに使用するbundleコマンドですが、
$ bundle install
とだけ打つとgemはrubyの共通フォルダに保存されます、つまりAプロジェクトで使用したgemもBプロジェクトで使用したgemもすべて同一のgemsフォルダにごちゃ混ぜになります。
できる事ならAプロジェクトで使用するgemはAプロジェクトフォルダ以下に、Bプロジェクトで使用するgemはBプロジェクトフォルダ以下に保存したいですよね。
その時は
$ bundle install --path vendor/bundle
と–pathオプションをつけて実行しましょう。
こうする事で使用されるgemファイルはプロジェクトフォルダ以下に保存されます。
ちなみに–pathは”remembered option”の一つであり、一度指定するとその後
$ bundle install
とだけ実行しても先程指定したvendor/bundle以下に保存されます。
“remembered option”の正体は.bundle/configファイルで、ここに
BUNDLE_PATH: vendor/bundle
と記入される事で記憶されます。
公開用サーバに余計なGemは入れないようにしましょう
開発マシンは良いのですが、サーバに公開(デプロイ)する時は
$ bundle install --without test development
と指定して、開発環境やテスト環境でのみ使用する余計なGemはインストールされないようにしましょう。
このオプションがちゃんと動く為には、Gemfileに使用したいGemを追加する際、開発・テスト・公開のどの段階で使用するか考えて記入する必要があります。
例えばテストのみで使用するGemは
gem 'factory_girl_rails'
と直接書くのではなく、
group :test do
gem 'factory_girl_rails'
end
とgroupで囲んで記入します。
使用しているGemのバージョンを確認するのには
その他よく使う機能として・・・プロジェクトで使用しているgemのバージョンを確認するのには
$ bundle list
を使用します。
gemのバージョン違いでうまく動かない時など確認のためによく使います。