2008-12-18 8 views

Répondre

414

J'ai trouvé here une option sans papier pour créer une nouvelle application à l'aide d'une ancienne version de Rails.

rails _2.1.0_ new myapp 
+3

fonctionne toujours sur Rails3.0, génial! – xhan

+1

Vous devriez changer ceci à la réponse acceptée puisqu'elle fonctionne pour Rails 2 et 3. La réponse de Keltia ne fonctionnera plus si Rails 3 est installé et que vous voulez une application Rails 2. –

+0

Erreur d'avoir Rails 3 installé échoue pour _2.3.5_ - Juste testé sur Mac OS X Snow Leopard avec ces modules installés: rails (3.0.5, 2.3.5, 2.2.2, 1.2.6) – Mike

3

Vous pouvez générer le squelette avec les deux versions et nécessitent celui que vous voulez dans 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 

ou utilisez la commande « rails » forment la version que vous voulez de toute façon.

3

Vous devriez également jeter un oeil à "geler" vos gemmes Rails dans l'application. Cela facilite énormément le déploiement, en particulier dans les environnements d'hébergement partagés.

il suffit de changer la variable RAILS_GEM_VERSION dans config/environment.rb et exécutez la tâche de râteau gel:

rake rails:freeze:gems 
+0

utilise rvm utilise rubyversion – Apoorv

49

Voici la commande que je l'habitude d'utiliser:

rails _version_ new application_name 

par exemple rails _2.1.0_ new my_app

Voici la liste de toutes les versions de rails disponibles jusqu'à présent:

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

16

J'avais des problèmes avec rails _version_ new application_name (le projet résultant était encore généré pour la dernière version de Rails installée.)

Après un peu d'excavation j'ai trouvé an article par Michael Trojanek avec une approche alternative. Cela fonctionne en créant un dossier avec un fichier Gemfile spécifiant la version souhaitée de Rails, puis en utilisant bundle exec rails... pour que Bundler prenne soin d'exécuter la version appropriée de rails. par exemple. pour faire un nouveau Rails 4.2.9 projets les étapes sont les suivantes:

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 
+0

Je ne pense pas qu'il y ait besoin de 'mise à jour du paquet', ça mettra à jour les rails aussi !! –

+0

@devel la mise à jour du bundle est nécessaire car une mise à jour manuelle est utilisée ('--skip-bundle'). Rails ne sera pas mis à niveau car une version spécifique est spécifiée dans le Gemfile (4.2.9 dans l'exemple.) – mikej

+0

'--force' est en train d'écraser le Gemfile –

Questions connexes