2009-07-24 5 views
0

J'essaie de créer de jolis liens sur mon site Web. Je crée une recherche via des balises tout à l'heure, et je me demande s'il est possible de créer des itinéraires agréables comme celui-ci:Routes personnalisées dans Rails

http://myapp.com/search/a_very 
http://myapp.com/search/nice_set 
http://myapp.com/search/of_tags 

ou tout au moins comme ceci:

http://myapp.com/articles/search/a_very 
http://myapp.com/articles/search/nice_set 
http://myapp.com/articles/search/of_tags 

Je l'ai fait quelques expériences avec un link_for, et compris qu'il est impossible d'éviter l'action? Paramètre = construction de valeur là. J'essaie également d'éviter les «numéros de trucs» dans l'adresse, comme l'envoi d'identifiants entre les actions, etc. De toute façon, je ne suis qu'un débutant et je n'ai absolument aucune idée de la direction dans laquelle je devrais creuser.

Devrait-il y avoir des routes magiques? Comment appliquer cette magie à mon exemple? Suis-je un paradigme de «convention de configuration»?

Répondre

6

Cela ne devrait pas exiger beaucoup de "magie"; C'est un type de route plutôt standard. Vous pouvez le faire comme ça (en routes.rb)

map.tag_search "search/:tags", :controller => "tags", :action => "search" 

qui précède suppose que vous avez un contrôleur de tags avec une action de recherche. Dans cette action, la fin de votre URL sera disponible dans params [: tags].

Je vous recommande de lire le Rails Guide on Routing - il couvre ce scénario et bien d'autres.

+0

Wow, merci! Je ne comprends pas très bien comment j'ai manqué ce guide ... – gmile

6

Rails 3 a une syntaxe mise à jour.

match 'search/:tags' => 'tags#search' :as => 'tag_search'