9

我们的团队彼此使用不同的数据库,并且我们正在使用捆绑器,因此我们的 Gemfile 包含 repo 创建者的数据库连接器(mysql)

我正在使用 pg,由于有点懒惰和害怕破坏某些东西,我不想使用 mysql,所以我只是在我们的 Gemfile 中添加了一个 gem "pg"。

当然,由于我们使用的是 git,它总是会显示为一个修改过的文件,而且我们都使用 Gemfile,所以我们不能 gitignore 它或将它与我们的更改一起提交。

问题是,我们该怎么做呢?bundler 中是否有条件,或者我只需要声明我在其他地方使用某个 gem?

4

2 回答 2

16

由于Gemfile, likeRakefile只是 Ruby 的一部分,如果你认为它会简化你的生活,你可以加入条件句。例如:

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

有时您必须为不同的 Ruby 版本执行此操作,因为 1.8 和 1.9 有时需要不同的 gem。

于 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 回答