Question

J'ai mis un rails la route vers le haut comme:

match ':controller/:id/:action'
# match 'teams/:id' => "teams#show" # doesn't have any additional effect, which makes sense to me
resources :teams, :only => [:index, :show]

De cette façon, je peux dire /teams/cleveland-indians et il appellera teams#show avec :id => 'cleveland-indians'. Fonctionne très bien. Mon problème est que url_for ne fait pas exactement ce que je veux. Dans mon point de vue / équipes / vue index, je reçois ce comportement:

url_for(:id => "cleveland-indians") # => /teams/cleveland-indians/index
url_for(:id => "cleveland-indians", :action => :show) # => /teams/cleveland-indians/show

Bien sûr que deuxième se comporte de la façon dont je veux, mais je voudrais vous débarrasser de la /show inutile à la fin. Je ne sais pas beaucoup sur la façon dont ces aides fonctionnent, mais je l'aurais deviné ne savait pas que show était l'action par défaut pour un GET avec un identifiant spécifié, même que le moteur de routage fait. Quoi qu'il en soit, quelle est la meilleure façon pour moi de prendre soin de cela? Ou suis-je fais juste tout faux?

Était-ce utile?

La solution

ligne «ressources vous devez fournir déjà les routes que vous voulez sans doute pour que vous puissiez simplement supprimer la première ligne « match ».

Notez que vous pouvez également utiliser 'teams_path', 'team_path ( "cleveland-indians") au lieu de' 'url_for'.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top