Especificar la versión de rails a utilizar al crear una nueva aplicación
Tengo dos versiones de rails (2.1.0 y 2.2.2) instaladas en mi ordenador.
Cuando creo una nueva aplicación, ¿es posible especificar que quiero usar la versión anterior (2.1.0)?
5 answers
He encontrado aquí una opción indocumentada para crear una nueva aplicación usando una versión anterior de Rails.
rails _2.1.0_ new myapp
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-20 16:23:57
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 ahora:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-17 07:24:28
Estaba teniendo algunos problemas usando rails _version_ new application_name
(el proyecto resultante todavía se generó para la última versión de Rails instalada.)
Después de un poco de excavación he encontrado un artículo por Michael Trojanek con un enfoque alternativo. Esto funciona creando una carpeta con un Gemfile especificando la versión deseada de Rails y luego usando bundle exec rails...
para que Bundler se encargue de ejecutar la versión apropiada de rails
. por ejemplo, para hacer un nuevo Rails 4.2.9 proyecta 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-30 15:32:03
Puede generar el esqueleto con cualquiera de las versiones 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 utilice el comando "rails" de la versión que desee de todos modos.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-12-18 20:43:21
También deberías echar un vistazo a "congelar" tus gemas 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 ejecute la tarea freeze rake:
rake rails:freeze:gems
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-12-18 22:06:44