2011-02-14 106 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,在那里你输入,你必须有存储的名称。