9

私たちのチームは互いに異なるデータベースを使用しており、バンドラーを使用しているため、Gemfile にはリポジトリ作成者の db コネクタ (mysql) が含まれています。

私は pg を使用していますが、少し怠惰で何かを壊してしまうのではないかと恐れているため、mysql を使用したくありません。そのため、Gemfile に gem "pg" を追加するだけです。

もちろん、git を使用しているため、常に変更されたファイルとして表示されます。また、Gemfile を使用しているため、gitignore や変更をコミットすることはできません。

問題は、これをどうするかということです。バンドラーに条件がありますか、それとも特定の宝石を別の場所で使用していることを宣言する必要がありますか?

4

2 に答える 2

16

Gemfile、 likeは Ruby のチャンクにすぎないためRakefile、条件を追加すると、作業が簡素化されると思われる場合に使用できます。例えば:

if (Gem.available?('pg'))
  gem 'pg'
else
  gem 'mysql2'
end

1.8 と 1.9 では異なる gem が必要な場合があるため、異なる Ruby バージョンに対してこれを行う必要がある場合があります。

于 2010-10-14T17:51:31.753 に答える
1

グループでご利用いただけます。Yehuda Katz がここでその方法を説明しています (例として pg gem を取り上げます) http://yehudakatz.com/2010/05/09/the-how-and-why-of-bundler-groups/

于 2010-10-14T17:41:38.023 に答える