2008-09-18 5 views
12

Je suivais le railcast concernant le plugin restful_authentication.Renommer les contrôleurs dans Rails et nettoyer le contenu généré

Il a recommandé d'exécuter la commande:

script/générer session utilisateur authentifié

Ce que je l'ai fait, et tout produit « bien », mais les sessions ne fonctionnerait pas. Vérification du site à nouveau, il mentionne une norme de dénomination et la liste mise à jour du code qui a déclaré:

scripts

/générer des sessions utilisateur authentifiées

Avec des séances étant au pluriel.

Alors maintenant, je suis session_controller.rb avec un SessionController en elle, mais je suppose en nommant des normes, il est à la recherche SessionsController, ce qui provoque le code à l'échec avec l'erreur « dans NameError SessionsController # créer »

Je vois le problème, ce qui est assez évident, mais ce que je ne sais pas est, comment puis-je résoudre ce problème sans régénérer le contenu? Y a-t-il un moyen d'inverser le processus de génération pour effacer tous les changements apportés par la génération?

J'ai essayé de simplement renommer les fichiers en sessions_controller avec la classe e SessionsController, mais cela a échoué. En écrivant ceci, j'ai résolu mon propre problème. J'ai dû renommer session en sessions dans le fichier routes en tant que map.resource et renommer le répertoire d'affichage de la session en sessions, et mettre à jour le chemin session_path dans le fichier html.erb vers sessions_path.

J'ai donc résolu mon problème, mais ma réponse concernant la suppression du contenu généré reste toujours. Est-il possible de dégager du contenu?

Répondre

14

En fait, script/destroy fonctionne pour tous les générateurs-générateurs de travail en lisant un script de sortes sur quels fichiers créer; script/destroy lit juste ce script à l'envers et supprime tous les fichiers créés, à condition que vous lui donniez les mêmes arguments que vous avez passés à script/generate. En résumé: script/destroy authenticated user session aurait supprimé tous les fichiers générés pour vous, après quoi vous auriez pu lancer script/generate user sessions sans problème.

1

Vous pouvez revenir à la révision précédente dans subversion, et recommencer, n'est-ce pas? droite? :-)

les rails ont script/destroy pour les choses 'non génératrices', mais je suppose que cela ne marchera que pour les rails de rangement, pas pour le plugin d'authentification reposant.

je dirais que votre meilleur pari est de trouver en fichiers (ou grep -R si vous n'utilisez pas un IDE) - trouvez tout ce qui se rapporte à votre ancien SessionController et changer

2

Je ne l'ai jamais essayé script/destroy, mais si vous annulez les modifications que vous venez de faire, la commande generate devrait vous donner une liste des fichiers ajoutés et des modifications effectuées. Si vous utilisez un système de contrôle de version quelconque, l'exécution de status/diff peut aussi aider.