Voici mes joyaux locaux:
$ gem list
*** LOCAL GEMS ***
actionmailer (4.0.0, 3.2.14)
actionpack (4.0.0, 3.2.14)
activemodel (4.0.0, 3.2.14)
activerecord (4.0.0, 3.2.14)
activerecord-deprecated_finders (1.0.3)
activeresource (3.2.14)
activesupport (4.0.0, 3.2.14)
arel (4.0.0, 3.0.2)
atomic (1.1.13)
builder (3.1.4, 3.0.4)
bundler (1.3.5)
bundler-unload (1.0.1)
erubis (2.7.0)
hike (1.2.3)
i18n (0.6.5)
journey (1.0.4)
json (1.8.0)
mail (2.5.4)
mime-types (1.24)
minitest (4.7.5)
multi_json (1.7.9)
polyglot (0.3.3)
rack (1.5.2, 1.4.5)
rack-cache (1.2)
rack-ssl (1.3.3)
rack-test (0.6.2)
Rails (3.2.14)
railties (4.0.0, 3.2.14)
rake (10.1.0)
rdoc (3.12.2)
rubygems-bundler (1.2.2)
rubygems-update (2.0.7)
rvm (1.11.3.8)
sprockets (2.10.0, 2.2.2)
sprockets-Rails (2.0.0)
thor (0.18.1)
thread_safe (0.1.2)
tilt (1.4.1)
treetop (1.4.15)
tzinfo (0.3.37)
Mais quand je tape Rails -v
je reçois ceci:
$ Rails -v
Rails 4.0.0
$ which Rails
/Users/polonium/.rvm/rubies/Ruby-2.0.0-p247/bin/Rails
Comment puis-je spécifier que rvm utilise Rails version 3.2.14?
Merci d'avance
Vous pouvez créer une nouvelle application Rails avec une version particulière de Rails, comme celle-ci.
Rails _3.2.14_ new myApp
Comment puis-je spécifier que rvm utilise Rails version 3.2.14?
rvm n'a rien à voir avec Rails. rvm est utilisé pour gérer plusieurs installations Ruby. Et chacune de vos installations Ruby peut être associée à plusieurs gemsets. Par exemple, supposons que Ruby 1.9.3 soit installé et que vous ayez créé deux jeux de pierres précieuses pour Ruby 1.9.3: gemsetA et gemsetB. Si vous dites à rvm d’utiliser Ruby 1.9.3 avec gemsetA, cela signifie:
Vos programmes Ruby seront exécutés par Ruby 1.9.3.
Vos programmes Ruby peuvent nécessiter n'importe quelle gemme dans gemsetA (ce qui permet ensuite à votre programme d'utiliser les méthodes (ou classes) définies dans gemsetA), mais les gemmes de gemsetB ne peuvent pas être vues par votre programme Ruby.
Voici un exemple concret:
~$ rvm list
rvm rubies
Ruby-1.8.7-p370 [ i686 ]
* Ruby-1.9.3-p194 [ x86_64 ]
=> Ruby-2.0.0-p0 [ x86_64 ]
Ruby-2.0.0-p247 [ x86_64 ]
# => - current
# =* - current && default
# * - default
~$ rvm use 1.9.3-p194
Using /Users/7stud/.rvm/gems/Ruby-1.9.3-p194
.
~$ rvm gemset list (This lists only the gemsets for the current Ruby version)
gemsets for Ruby-1.9.3-p194 (found in /Users/7stud/.rvm/gems/Ruby-1.9.3-p194)
=> (default)
global
programming
Rails3tutorial
Rails4
~$ rvm gemset use programming
Using Ruby-1.9.3-p194 with gemset programming
Après cela, mes programmes Ruby seront exécutés par Ruby 1.9.3 et toutes les gemmes du gemset de programmation peuvent être requises dans mon programme Ruby. Vous pouvez utiliser un raccourci pour exécuter ces deux commandes en une seule étape:
rvm use Ruby 1.9.3-p194@programming
Vous venez de combiner la version Ruby et le gemset avec un "@" entre eux.
Mais quand je tape Rails -v j'obtiens ceci:
$ Rails -v Rails 4.0.0
En effet, le gemset actuel contient la gemme de Rails 4.0.0. Si vous voulez voir $ Rails -v
output Rails 3.2.14
, vous devez indiquer à rvm de passer à un gemset contenant la gem Rails 3.2.14.
Cependant, vous pouvez obliger rvm à basculer automatiquement vers la version et le gemset appropriés pour votre projet Rails. Dans votre Gemfile, ajoutez un commentaire après la version de Ruby:
Ruby '2.0.0'
#Ruby-gemset=railstutorial4_gems
Ensuite, chaque fois que vous basculez vers le répertoire contenant votre projet Rails, rvm basculera automatiquement le Ruby actuel vers Ruby 2.0.0 et le gemset actuel vers railstutorial4_gems. Si vous modifiez des répertoires en dehors de votre application Rails, rvm changera le Ruby actuel et le gemset actuel à leur état d'origine.
Je suis juste un débutant de Rails, mais voici les étapes que j’utilise pour créer un nouveau projet, qui sont tout à fait extraites du livre ferroviaire ( http://Ruby.railstutorial.org/Ruby-on-Rails-tutorial- livre )
1)
.../Rails_projects$ rvm use <Ruby version here>@<new gemset name here> --create
e.g.
.../Rails_projects$ rvm use Ruby-1.9.3-p194@myapp_gemset --create
2)
.../Rails_projects$ gem install Rails --version 3.2.14
Le gemset actuel étant le gemset myapp, cette commande installe le gem Rails 3.2.14 dans le gemset myapp.
3)
.../Rails_projects$ Rails new myapp
.../Rails_projects$ cd myapp
Le gemset actuel est toujours myapp_gemset.
4)
.../Rails_projects/myapp$ Rails -v
Rails 3.2.14
Au cas où quelqu'un se demanderait ce que sont les deux joyaux suivants:
gemsets for Ruby-1.9.3-p194 (found in /Users/7stud/.rvm/gems/Ruby-1.9.3-p194)
=> (default)
global
rvm crée ces deux joyaux pour chaque version de Ruby que vous installez. Après avoir installé une version de Ruby, si vous ne créez pas vous-même un gemset pour cette version de Ruby et que vous installez une gemme, celle-ci est intégrée au gemset (par défaut). Et, si vous voulez que tous vos gemsets contiennent un gem spécifique, vous pouvez passer au gemset global et y installer le gem.
Mettre à jour: -------
Pour maintenir la compatibilité avec les autres gestionnaires de versions de Ruby, vous pouvez spécifier la version de Ruby et le nom de gemset de votre projet dans un fichier différent plutôt que dans le Gemfile:
$ cd ~/Rails_projects/myapp
~/Rails_projects/myapp$ echo 2.0.0 > .Ruby-version
~/Rails_projects/myapp$ echo myapp_gemset > .Ruby-gemset
Vous obtiendrez toujours la même version automatique de Ruby et le changement de gemset lorsque vous cd
dans le répertoire de votre projet. Voir la documentation de rvm ici .
le chemin que vous avez trouvé /Users/polonium/.rvm/rubies/Ruby-2.0.0-p247/bin/Rails
n'est pas le chemin correct que vous auriez trouvé dans l'installation standard de RVM tout en utilisant correctement RVM. Ce que vous verriez devrait être: /Users/polonium/.rvm/gems/Ruby-2.0.0-p247/bin/Rails
pour le faire fonctionner correctement, essayez ce flux:
rvm use 2.0.0
rvm gemset empty
rvm use @Rails3 --create
gem install Rails -v "~>3.2"
rvm use @Rails4 --create
gem install Rails -v "~>4"
de cette façon, vous pouvez maintenant basculer entre ces deux installations Rails avec:
rvm use 2.0.0@Rails3
Rails -v # Rails 3.2...
rvm use 2.0.0@Rails4
Rails -v # Rails 4.0...
vous devriez faire: gem installer 'Rails' -v '3.2.13'
Vous devriez utiliser un gemset propre, si vous utilisez rvm, vous pouvez essayer:
rvm gemset crée rvm gemset utilise
Maintenant que vous avez un gemset propre, il est temps d'installer Rails,
gem installer Rails -v '3.2.13'
et ensuite créer une application Rails,
Rails nouveau nom_app
Assurez-vous de vérifier le gemset global en vous assurant au préalable que vous utilisez la version de Ruby que vous souhaitez utiliser.
$Ruby -v
Puis passez au gemset global (le gemset global s’applique à tous les gemsets, alors assurez-vous de le garder propre et universel… ou global, d'où son nom)
$rvm gemset use global
Après cela, vérifiez la liste des gemmes qui peuvent l’affecter, comme la gemme "railties" mentionnée par Harsha en tapant
$gem list
Parfois, le gemset global peut être peuplé par un bijou accidentel qui affectera tous les autres gemsets. Si vous trouvez un joyau égaré, vous pouvez le désinstaller simplement avec
$gem uninstall examplegem
ou pour une version spécifique de ce joyau passez dans le -v avec la version entre guillemets
$gem uninstall examplegem -v"3.2.1"
Et lisez le commentaire de 7stud sur la création et l'utilisation de RVM pour changer de gemsets.
"Railties (4.0.0," est le problème que vous avez. Je suppose qu'il a été installé par erreur?
Désinstallez cette version à l'aide de, gem, désinstallez Railties, puis sélectionnez l'option avec 4.0.0.
Maintenant, la commande "Rails -v" renverra votre version attendue qui est "3.2.14"