2011-02-14 107 views
5

我公司目前擁有的URL看起來像這樣:創建SEO友好的URL 3

things?category_id=6&country_id=17 

,我想有網址看起來像這樣:

/printer_cartridges/united_kingdom 

是否有辦法Rails 3,沒有硬編碼的路由器中的所有類別和國家有上面我想要的URL,也許使用find_by_name或類似?解決這個問題的最好方法是什麼?

+3

閱讀的Rails指南的路由,尤其是嵌套的資源: http://guides.rubyonrails.org/routing.html#nested-resources – Dominic 2011-02-14 18:34:42

回答

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

然後,你需要更新你的行動查找使用一切PARAMS [:category_slug],而params [:country_slug]代替IDS。看看slugged gem產生slu。。

+1

Sutto的重擊寶石是走在這條路上。感謝喬丹。 – Gav 2011-02-15 17:13:21

3

在您的類別添加到模型的方法

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

其中CATEGORY_NAME和LOCATION_NAME,在那裏你輸入,你必須有存儲的名稱。