为什么人们在Gemfiles中的`:development`组中放置像'gem“guard”这样的东西

时间:2011-09-05 16:42:51

标签: ruby-on-rails ruby bundler

从这看起来:

Bundler.require *Rails.groups(:assets => %w(development test))

应用启动时需要这些获取组:

[:default, :development, :assets]

为什么应用程序中需要guard

有最好的做法吗? e.g:

group :misc do
  gem "guard"
end

1 个答案:

答案 0 :(得分:1)

Bundler非常智能,只需要当前环境的宝石。这些组对应于这些环境。如果您的应用程序在开发环境中运行,Bundler需要该组中的gem,但不需要来自测试组的gems,依此类推。

人们经常将宝石放在他们需要/想要的开发组中,而不是他们的生产系统。

该行

Bundler.require *Rails.groups(:assets => %w(development test))

简单地说,Bundler只需要资产组中的宝石用于您的开发和测试环境。这可以阻止您的资产在生产服务器上进行懒惰编译,您通常希望在其中部署预编译资产。