Dois-je revenir à une ancienne version de Rails uniquement pour exécuter une application héritée unique (entre autres problèmes)?

StackOverflow https://stackoverflow.com/questions/800089

Question

J'ai une ancienne application Rails que je dois exécuter. Mais j'ai la dernière version de Rails.

Lorsque j'essaie d'exécuter cette ancienne application, le message suivant est affiché:

  

Il manque la gemme Rails 1.99.0. S'il vous plaît    gem install -v = 1.99.0 rails

Mais quand j'exécute la commande: gem install -v = 1.99.0 rails

  

ERREUR: impossible de trouver des rails de pierre précieuse   localement ou dans un référentiel

Vous ne savez pas quoi faire ensuite. Quelqu'un pourrait-il m'aider à comprendre ce qui se passe ici?

Et ma deuxième question, liée à ce problème, est la suivante: il semble ridicule de devoir revenir à une ancienne version de Rails uniquement pour exécuter cette application héritée - il doit y avoir un meilleur moyen de le faire?

Était-ce utile?

La solution

autant que je sache, v1.99.0 est en quelque sorte une version préliminaire de v2.0 , vous pouvez donc essayer d'installer v2.0.x , en modifiant le RAILS_GEM_VERSION dans config / environment.rb et rails de rake en cours d'exécution: update .

Si vous y réfléchissez, ce n’est pas aussi stupide que cela puisse paraître au premier abord. Vous créez une application en utilisant un cadre Web en évolution rapide, comme RoR. Vos choix sont les suivants: continuez à développer votre application à peu près au même rythme que le framework ou gelez les gemmes (et tout ce dont votre application dépend, telles que des gemmes, des plugins) dans votre application afin de la rendre moins fragile aux attentes. mises à jour.

Autres conseils

En ce qui concerne la deuxième question: oui c'est idiot. Heureusement, l'équipe de Rails a remarqué cette sottise et à un moment donné, elle nous a donné la possibilité de "geler" les versions des bibliothèques Rails requises par une application (ainsi que des versions spécifiques de gem) dans le répertoire vendor .

Pour figer votre version de Rails:

rake rails:freeze:gems

Il existe un bon article de blog à partir d'un en décrivant cela.

Sauf si vous installez et déployez RVM, votre installation annulera l'installation de vos rails système, ce qui affectera vos autres projets. Si vous souhaitez administrer manuellement votre environnement de développement de cette manière, vous pouvez d'abord désinstaller les rails, puis installer la version souhaitée de rails pour le projet en cours.

Mais essayez d'installer votre gem de rails à la place avec cette syntaxe:

sudo gem install rails -v 1.99.0
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top