2011-02-14 12 views
5

ho attualmente URL che assomigliano a questo:Creazione di URL SEO friendly in Rails 3

things?category_id=6&country_id=17 

e mi piacerebbe avere gli URL che assomigliano a questo:

/printer_cartridges/united_kingdom 

C'è un modo in Rails 3, senza codificare hard tutte le categorie e i paesi nel router per avere gli URL come vorrei sopra, magari usando find_by_name o simili? Qual è il modo migliore per avvicinarsi a questo?

+3

Leggere la guida di rotaie sul routing, in particolare le risorse nidificate: http://guides.rubyonrails.org/routing.html#nested-resources – Dominic

risposta

4
match '/:category_slug/:country_slug', :to => 'things#index' 

allora avrete bisogno di aggiornare la vostra azione per cercare tutto utilizzando params [: category_slug] e params [: country_slug] invece degli ID. Guarda lo slugged gem per generare lumache.

+1

La gemma di Sutto è la soluzione ideale. Grazie Giordano. – Gav

3

nel modello categoria aggiungere il metodo

def to_param 
    "#{category_name.parameterize}/#{location_name.parameterize}" 
end 

dove category_name e location_name sono dove si immette dove si hanno hanno i nomi memorizzati.

Problemi correlati