Подтвердить что ты не робот

Как выглядит группа активов в рельсах 3.1, обрабатываемая связующим?

Я не понимаю, что именно происходит с этой группой, и какой пакет работает с ней. Он загружен только в режиме dev? Что делать, если я хочу создать новый тип среды, как мне обращаться с этой группой? Etc.

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

Ответ 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)))

Надеюсь, что это поможет:) -