Réutilisation de code depuis une autre application Rails
-
22-07-2019 - |
Question
J'essaie de réutiliser du code provenant d'une autre application de rails sur laquelle j'avais déjà travaillé. J'ai copié tous les modèles / vues / contrôleurs / migrations et lancé rake db: create and migrate. Maintenant, lorsque j'essaie d'exécuter l'application, la page initiale de cette vue (celle qui contient la liste modifier / supprimer) se charge très bien et indique qu'il y a 0 enregistrements. Cependant, lorsque je clique sur nouveau, un message d'erreur s'affiche sur un morceau de code créé par l'échafaudage dans mon autre application ...
<%= link_to 'New comment', new_comment_path %>
undefined local variable or method `new_comment_path' for #<ActionView::Base:0xb67c9690>
Si je suis capable de réutiliser ce code ou si c'est quelque chose d'autre, je dois le faire pour m'assurer que tout a été déplacé. J'ai essayé d'utiliser grep pour trouver où le 'new_comment_path' était défini dans mon autre projet et je l'ai seulement vu utilisé dans un contexte similaire à celui décrit ci-dessus. Toute aide serait la bienvenue.
La solution
Cette erreur indique qu'il vous manque des itinéraires.
Archivez le fichier conf / routes.rb dans l'application à partir de laquelle vous copiez.
Tout ce que vous avez à faire est probablement d'ajouter
map.resources :comments
à votre routes.rb
Et ajoutez cela pour tous les contrôleurs que vous avez copiés.
Autres conseils
Si vous avez le temps, ou si vous prévoyez de le faire à nouveau, vous pouvez envisager de transformer les candidats en réutilisation dans un plug-in, ou d'utiliser la fonctionnalité de moteurs de la version 2.3 (ou installer le plug-in rails_engines pour les versions un peu plus anciennes)