2010-07-13 5 views
2

Tout comme le sujet le dit. Je souhaite modifier le contrôleur par défaut /: routage identifiant au contrôleur /: nom à la place dans Rails 3. Rails 2 vous avez utilisé le routage avec quelque chose comme nommé ceci:Comment puis-je changer le routage Rails du contrôleur /: id au contrôleur /: nom dans Rails 3?

config/routes.rb

map.location 'location/:name', 
    :controller => 'your_controller', :action => 'your_action' 

de remplacement nommé itinéraire

map.location 'goto/:name', :controller => 'location', :action => 'your_action' 

exemples de spécification d'URL dans une vue

<%= link_to 'foo', location_url({:name => 'foo'}) %> 
<%= link_to 'bar', location_path({:name => 'bar'}) %> 

Mais je suis sûr qu'il ya une autre (meilleure) dans Rails 3.

+0

Avez-vous essayé ce logiciel? –

Répondre

0

Je ne sais pas, mais cela peut vous aider.

match de 'user_delete /: nom',: à => 'Sessions # détruisent'

c'est le même que

map.user_delete '/ user_delete /: nom',: controller => « sessions »,: action => 'détruire'

0

Essayez ceci:

match 'location/:name' => 'your_controller#your_action', :as => location 
0

I f vous avez location.name, alors vous pourriez LINK_TO comme ceci:

<%= link_to 'foo', location_path(location.name) %> 

vous donnera l'URL/sites /: nom

par opposition à

<%= link_to 'foo', location %> #same as <%= link_to 'foo', location_path(location) %> 

qui vous donnera/locations /: id