2010-06-02 8 views
0

J'ai actuellement une application qui pour un ensemble de paramètres (emplacement, catégorie, budget, ...) un utilisateur peut entrer une URL "joli" comme:Permutation on Rails Routes

/lieu/canada/ontario
/catégorie/primaire
/budget/petit

résultant des paramètres respectifs:

params[:country] == 'canada' and params[:region] == 'ontario' 
params[:category] == 'primary' 
params[:budget] == 'small' 

Je souhaite autoriser les utilisateurs à effectuer des recherches sur plusieurs paramètres à la fois (avec chaque paramètre facultatif). Par exemple:

/lieu/Canada/Ontario/catégorie/primaire/budget/petit
/lieu/Canada/Ontario/catégorie/primaire /budget/petit/catégorie/primaire /catégorie/primaire/budget/small

Je comprends que cela peut être réalisé en utilisant des paramètres d'URL, mais pour des raisons de SEO je préfère ajouter les "jolis" paramètres. Est-ce possible sans énumérer toutes les combinaisons possibles d'itinéraires (j'ai un grand nombre de champs de recherche)? Je comprends que la route "globbing" peut-être jouer un rôle, mais je ne sais pas comment.

Merci.

Répondre

0

a fini par donner dans Rails 2. Rails application mise à niveau à 3 et utilisés paramètres optionnels:

match 'filter(/budget/:budget)(/category/:category)(/location/:country(/:region))' => 'filter#index', :as => :filter