如何通过bundler处理rails 3.1中的:assets组?

时间:2011-09-08 16:45:15

标签: ruby-on-rails bundler

我不明白这个群体到底发生了什么,以及捆绑者正在做什么。它只在开发模式下加载吗?如果我想创建一个新的环境类型,我应该如何处理这个组呢?等

group :assets do
  gem 'coffee-rails', "~> 3.1.0"
  gem 'uglifier'
end

3 个答案:

答案 0 :(得分:22)

处理:assets中放置config\application.rb组的代码。在rails 3.1中,它是:

if defined?(Bundler)
  # If you precompile assets before deploying to production, use this line
  Bundler.require *Rails.groups(:assets => %w(development test))
  # If you want your assets lazily compiled in production, use this line
  # Bundler.require(:default, :assets, Rails.env)
end

答案 1 :(得分:8)

详细说明答案,来自rails asset pipeline guide

a)默认情况下,它们不包含在生产中:

# Gems used only for assets and not required
# in production environments by default.

b)如果您添加新的环境类型,您可能希望根据上面的Dmitry的回答来处理它。也就是说,将其添加为需要它的组之一。

答案 2 :(得分:0)

我认为应该是,

if defined?(Bundler)
  # If you precompile assets before deploying to production, use this line
  Bundler.require(*Rails.groups(:assets => %w(development test)))
  # If you want your assets lazily compiled in production, use this line
  # Bundler.require(:default, :assets, Rails.env)
end

因为该行有一些警告,

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

所以我们使用,

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

希望这会有所帮助:) -