2009-08-24 10 views
0

Envisagez un PersonController ayant une action list. Un utilisateur peut choisir de lister toutes les personnes, ou seulement les hommes ou les femmes; actuellement, pour ce faire, ils auraient aller à /people/m ou /people/f, ce qui correspond à la routeSpécification d'un paramètre d'un itinéraire

map.list_people "people/:type", 
    :conditions => { :method => :get }, 
    :requirements => { :type => /a|m|f/ }, 
    :defaults => { :type => 'a' } 

(/people/a fonctionne comme juste /people/, et répertorie toutes les personnes).

Je veux changer mon cheminement afin que je puisse avoir deux voies, /males/ et /females/ (au lieu de people/:type), toutes deux iraient à PersonController#list (SEC - à part un paramètre supplémentaire à ce qui est recherché, tout le reste est identique), mais va définir le type - est-il un moyen de le faire?

Répondre

3
map.with_options(:controller => "people", :action => "index") do |people| 
    people.males 'males', :type => "m" 
    people.females 'females', :type => "f" 
end 

Ensuite, vous devriez être en mesure de le faire males_path ou males_url pour obtenir le chemin pour cela, et je suis sûr que vous pouvez deviner ce que vous faites pour obtenir le chemin pour les femmes.

+0

Parfait, c'est exactement ce que je cherchais, mais je ne pouvais pas le trouver dans le guide de routage. Merci! –

Questions connexes