Как выглядит группа активов в рельсах 3.1, обрабатываемая связующим?
Я не понимаю, что именно происходит с этой группой, и какой пакет работает с ней. Он загружен только в режиме dev? Что делать, если я хочу создать новый тип среды, как мне обращаться с этой группой? Etc.
group :assets do
gem 'coffee-rails', "~> 3.1.0"
gem 'uglifier'
end
Ответы
Ответ 1
Код, который обрабатывает группу :assets
, помещенную в config\application.rb
. В рельсах 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
Ответ 2
Чтобы немного рассказать о ответе, руководство по управлению конвейерами rails:
a) по умолчанию они НЕ включены в производство:
# Gems used only for assets and not required
# in production environments by default.
b) Если вы добавите новый тип среды, вы бы хотели обработать его в соответствии с ответом Дмитрия выше. То есть, добавьте его как одну из групп, которая потребует его.
Ответ 3
Я думаю, что это должно быть,
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)))
Надеюсь, что это поможет:) -