我公司目前拥有的URL看起来像这样:创建SEO友好的URL 3
things?category_id=6&country_id=17
,我想有网址看起来像这样:
/printer_cartridges/united_kingdom
是否有办法Rails 3,没有硬编码的路由器中的所有类别和国家有上面我想要的URL,也许使用find_by_name
或类似?解决这个问题的最好方法是什么?
我公司目前拥有的URL看起来像这样:创建SEO友好的URL 3
things?category_id=6&country_id=17
,我想有网址看起来像这样:
/printer_cartridges/united_kingdom
是否有办法Rails 3,没有硬编码的路由器中的所有类别和国家有上面我想要的URL,也许使用find_by_name
或类似?解决这个问题的最好方法是什么?
match '/:category_slug/:country_slug', :to => 'things#index'
然后,你需要更新你的行动查找使用一切PARAMS [:category_slug],而params [:country_slug]代替IDS。看看slugged gem产生slu。。
Sutto的重击宝石是走在这条路上。感谢乔丹。 – Gav 2011-02-15 17:13:21
在您的类别添加到模型的方法
def to_param
"#{category_name.parameterize}/#{location_name.parameterize}"
end
其中CATEGORY_NAME和LOCATION_NAME,在那里你输入,你必须有存储的名称。
阅读的Rails指南的路由,尤其是嵌套的资源: http://guides.rubyonrails.org/routing.html#nested-resources – Dominic 2011-02-14 18:34:42