2010-09-14 10 views
0

Les nouvelles voies de rails sont excellentes à bien des égards, mais je cherche le meilleur moyen d'obtenir la mise en cache de pages avec des pages et des formats comme dans les rails 2.x.Paramètres supplémentaires dans Rails 3 routes et ressources

J'ai de nombreuses voies possibles souhaitées des formules de base:

/(bazes/<baz id>/)(foos/<foo id>/)bars/page/<page num>/<format> 

itinéraires Exemple:

/bars/page/1/xml 
/foos/1/bars/page/2/html 
/bazes/3/foos/1/bars/page/1/json 
/bazes/3/bars/page/2/xml 

En anglais:

Give me all bars, page 1, formatted xml 
Give me all bars that belong to foo 1, page 2, formatted html 
Give me all bars that belong to baz 3 AND foo 1, page 1, formatted json 
Give me all bars that belong to baz 3, page 2, formatted xml 

moi étions en mesure de le faire avec un tas de routes nommées:

map.baz_foo_bars '/bazes/:baz_id/foos/:foo_id/bars/page/:page/:format', :controller => 'bars', :action => 'formatted_bars' 

mais cela semble mal dans Rails 3 et je pense que je manque quelque chose qui peut résoudre efficacement mes malheurs de routage. Comment puis-je réaliser ces modèles de routage avec le routage Rails 3?

Répondre

1

j'ai pu l'obtenir avec une seule instruction match

match "(/bazess/:baz_id)(/foos/:foo_id)/bars(/page/:page)(/:format)" => "bars#index", :as => :bars