2010-06-28 7 views
1

J'ai mis cette ligne dans mon dossier routes.db:Comment réparer cette erreur de routage dans Ruby on Rails?

map.mything '/mything', :controller => 'mything', :action => 'list' 

Mais je reçois cette erreur quand je vais à http://localhost:3000/mything, je reçois cette erreur:

Unknown action 
No action responded to index. Actions: list 

Pourquoi est-il tente de utiliser l'index au lieu de la liste? Je pensais qu'en définissant

:action => 'list' 

utiliserait l'action de liste? Merci d'avoir lu.

+1

Vous devez placer les routes nommées au-dessus des routes par défaut. Je place les routes nommées comme celles-ci en haut de routes.rb afin qu'elles soient toujours évaluées en premier. –

+0

@Jim cela a fonctionné, merci! Si vous soumettez une réponse, je la marquerai comme correcte. – ben

+0

ben: merci, j'ai également fourni le code pour les autres avec le même problème. –

Répondre

1

Vous devez mettre les routes nommées au-dessus des routes par défaut.

Je place des routes nommées comme celles-ci en haut de routes.rb afin qu'elles soient toujours évaluées en premier.

ActionController::Routing::Routes.draw do |map| 
    map.about 'about', :controller => 'home', :action => 'about' 
    map.contact 'contact', :controller => 'home', :action => 'contact' 

    # MORE CONFIG 

    map.connect ':controller/:action/:id' 
    map.connect ':controller/:action/:id.:format' 
end 
0

Désolé de poser une question potentiellement évidente, mais avez-vous essayé de redémarrer l'application? Certaines routes ne seront pas enregistrées tant que vous n'aurez pas redémarré l'application (les ressources RESTful n'ont jamais besoin de redémarrer une application, mais d'autres le font souvent).

+0

N'avait pas essayé cela, juste fait et toujours eu l'erreur. – ben

1

En accord avec Jim Schubert, placez les routes nommées au-dessus des routes par défaut.

Un autre problème probable est que vous avez quelque chose comme:

map.resources :mything

qui établit une action d'index sur le contrôleur à la suite de vous échafaudage d'un modèle