Rails 3.0: Ajout d'une nouvelle action à un contrôleur
Avant de rails 3.0, d'ajouter une nouvelle action à un contrôleur a été facile.
Il vous suffit d'ajouter une nouvelle méthode foobar
à la classe du contrôleur (appelé mycontroller).
Ajouter un fichier html dans le dossier vues de ce contrôleur, foobar.html.erb
Alors, si vous pointez le navigateur pour .../mycontroller/foobar
tout a fonctionné.
Cependant, dans les rails 3.0 quand j'ai ajouté une nouvelle action, comme décrit ci-dessus, j'obtiens l'erreur suivante:
Pas de route correspond à "/mycontroller/foobar"
Ce qui a changé dans les rails 3.0? Ce que je fais mal?
source d'informationauteur ARI
Vous devez vous connecter pour publier un commentaire.
Ajouter à
routes.rb
:Cette route l'URL
http://mysite.com/foobar
à lafoobar
action à l'aide de HTTP GET.Quelques infos:
Noter que la définition d'un
def foobar
dans le contrôleur n'est pas une exigence stricte (sauf si vous avez besoin de faire quelque chose dansfoobar
avant le point de vue est affiché) - mais la vue doit exister. En d'autres termes, même sidef foobar
méthode n'existe pas dans le contrôleur, le point de vuefoobar.html.erb
sera affichée.Ici est un bonne vue d'ensemble des voies en Rails 3.
Aussi, dans le cas où vous ne le savez pas encore, vous pouvez lister toutes les routes que vous app connaît en utilisant
rake routes
. Par conséquent, si la sortie derake routes
ne pas la liste de l'itinéraire pour certains contrôleur/action, alors le "Pas d'itinéraire correspond' erreur se produit.L'erreur, dit-il. Vous n'avez pas de route correspondante dans votre config/routes.rb. Vérifiez si la route par défaut est commenté. Si oui, vous devez ajouter un itinéraire pour votre nouvelle action.
Cette question a été révisée à la semaine dernière.Vous trouverez tout ce dont vous avez besoin ici
Rails application ne permet pas de voir mon point de vue