2010-09-17 2 views
0

je veux changer la route par défaut dans RoR à ce que je veux: Prenons l'exemple suivant ...dans les voies

:controller/:action/:id 

qui vous donnera la route dans le navigateur: http://localhost:3000/controller/action/id

maintenant je veux changer pour ...

http://localhost:3000/this-is-what-i-want/id

nous pouvons obtenir un alias pour le contrôleur et l'action ainsi que ...

resources :controller, :as => "my-custom-name" 

et si vous voulez avoir l'alias de l'action, puis

resources :controller, :path_names => { :action => 'my-custome-name-1', :action => 'my-custome-name-2' } 

MAIS je veux changer le contrôleur et l'action à la fois ... si vous avez remarqué ce qui précèdehttp://localhost:3000/this-is-what-i-want/idchemin dans la question ...

ont besoin d'aide ... merci à l'avance ...

Répondre

1

Vous avez besoin d'un itinéraire nommé.

En Rails2:

map.a_name 'this-is-what-i-want/:id', :controller => 'controller_name', :action => 'action_name' 

En Rails3:

match 'this-is-what-i-want/:id' => 'controller_name#action_name' 
+0

maintenant si je veux: map.a_name 'this-is-what-i-want/nom dynamique /: id' ,: controller => 'controller_name',: action => 'action_name' ... comment em i gona définir le lien pour le "dynamic-name" dans les rails ...? –

+0

Ensuite, suivez les conseils de Jesse Wolgamott et utilisez les routes de repos – Yannis

0

Vous voulez être en utilisant les voies de repos, plutôt que contrôleur/action

Je vais utiliser « boules » au lieu de « cette -est-ce-i-want »

resources :balls 

Ensuite, lorsque vous liez à une balle, faire link_to(ball.name, ball).

Cela vous donnera un lien de http://localhost:3000/balls/45

Ce rails rest cheatsheet est un bon début.

Questions connexes