Especificación de la versión de Rails para utilizar al crear una nueva aplicación

Tengo dos versiones de Rails (2.1.0 y 2.2.2) instaladas en mi computadora.

Cuando creo una nueva aplicación, ¿es posible especificar que deseo usar la versión anterior (2.1.0)?

Encontré aquí una opción no documentada para crear una nueva aplicación usando una versión anterior de Rails.

rails _2.1.0_ new myapp 

Aquí está el comando que uso normalmente:

 rails _version_ new application_name 

por ejemplo, rails _2.1.0_ new my_app

Aquí está la lista de todas las versiones de Rails disponibles hasta el momento:

http://rubygems.org/gems/rails/versions

Estaba teniendo problemas para usar rails _version_ new application_name (el proyecto resultante todavía se generó para la versión más reciente de Rails instalada).

Después de excavar, encontré un artículo de Michael Trojanek con un enfoque alternativo. Esto funciona al crear una carpeta con un Gemfile que especifica la versión deseada de Rails y luego usar bundle exec rails... para que Bundler se encargue de ejecutar la versión apropiada de los rails . por ejemplo, para hacer un nuevo proyecto Rails 4.2.9, los pasos son:

 mkdir myapp cd myapp echo "source 'https://rubygems.org'" > Gemfile echo "gem 'rails', '4.2.9'" >> Gemfile bundle install bundle exec rails new . --force --skip-bundle bundle update 

Puede generar el esqueleto con cualquier versión y requerir la que desee en config/environment.rb :

 # Specifies gem version of Rails to use when vendor/rails is not present RAILS_GEM_VERSION = '2.1.2' unless defined? RAILS_GEM_VERSION 

o use el comando “carriles” de la versión que desee de todos modos.

También deberías echar un vistazo a “congelar” tus gems Rails en la aplicación. Esto ayuda mucho con la implementación, especialmente en entornos de alojamiento compartido.

Simplemente cambie la variable RAILS_GEM_VERSION en config/environment.rb y emita la tarea freeze rake:

 rake rails:freeze:gems