• 只在开发环境或测试环境下使用的 gem 应进行适当的分组。

  • 在项目中只使用广为人知的 gem。如果你考虑引入某些鲜为人所知的 gem,应该先仔细检查一下其源代码。

  • 关于多个开发者使用不同操作系统的项目,与操作系统有关的 gem 默认情况下会产生经常变动的 Gemfile.lock。 在 Gemfile 文件里,所有与 OS X 相关的 gem 放在 darwin 群组,而所有与 Linux 有关的 gem 应放在 linux 群组:

    1. # Gemfile
    2. group :darwin do
    3. gem 'rb-fsevent'
    4. gem 'growl'
    5. end
    6. group :linux do
    7. gem 'rb-inotify'
    8. end

    要在正确的环境下加载合适的 gem,需添加以下代码至 config/application.rb

    1. platform = RUBY_PLATFORM.match(/(linux|darwin)/)[0].to_sym
    2. Bundler.require(platform)
  • 不要把 Gemfile.lock 文件从版本控制里移除。这可不是一个随机产生的文件——它的目的是确保你所有的团队成员执行 bundle install 时,获得相同版本的 gem 。