En Rails 3, las gemas utilizadas exclusivamente para generar activos en la canalización de activos se colocaron correctamente en el assets
grupo del Gemfile:
...
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails'
gem 'coffee-rails'
gem 'uglifier'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', :platforms => :ruby
end
Ahora, de acuerdo con la documentación de actualización (aún en progreso) :
Rails 4.0 eliminó el grupo de activos de Gemfile. Debería eliminar esa línea de su Gemfile al actualizar.
Efectivamente, hacer un nuevo proyecto con RC1 produce un Gemfile con gemas relacionadas con activos incluidas de forma predeterminada fuera de cualquier grupo:
source 'https://rubygems.org'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.0.0.rc1'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.0.rc1'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
...
¿Significa esto que estas gemas ahora se incluirán en construcciones de producción de forma predeterminada? Si es así, ¿por qué el cambio de opinión? ¿Rails 4 avanza hacia la generación dinámica de activos en producción?
RAILS_GROUPS=assets
(ver Rails.groups
) antes del comando para precompilar activos en producción en su entorno de compilación.