2011-10-13 3 views
1

J'ai généré un contrôleur appelé Search. plus tard, j'ai construit un modèle appelé recherche aussi bien. Quand j'essaye de faire une recherche j'obtiens une erreur qui indique qu'il n'y a aucun contrôleur appelé recherches, ainsi il semble que le modèle interagisse avec le pluriel de lui-même par défaut. Comment puis-je changer ce comportement?Rails Modèle et contrôleur

Répondre

4

Cela semble être nouveau pour les rails. Le meilleur conseil ici est presque certainement "ne pas" Rails utilise beaucoup de conventions pour éviter de devoir tout configurer, et c'est l'un d'entre eux. Je recommande donc de changer le nom de votre contrôleur plutôt que d'essayer de faire des rails faire quelque chose hors de l'ordinaire

pour plus de détails, voir this stackoverflow question

+0

Excellent conseil. Convention sur la configuration. – Fred

1

Renommez la classe contrôleur de « SearchController » à « SearchesController ». Renommez également le fichier en apps/controllers à search_controller.rb en searches_controller.rb.

0

Lorsque vous avez généré le contrôleur et le modèle séparément, vous avez également généré des fichiers supplémentaires tels que des fichiers de test, des vues, etc. Donc, potentiellement, vous aurez un gros mal de tête à ce sujet.

Je recommande d'utiliser la commande rails destroy dans ces étapes:

Engagez votre projet en cours (plus tard, vous pouvez récupérer votre contenu de celui-ci)

Exécuter ce commande:

rails destroy model Search 
rails destroy controller Search 

Restaurez votre contrôleur et modèle du commit précédent.

Questions connexes