在Rails 3中创建SEO友好URL

时间:2011-02-14 18:20:35

标签: ruby-on-rails routing routes custom-routes

我目前的网址如下:

things?category_id=6&country_id=17

我希望网址看起来像这样:

/printer_cartridges/united_kingdom

在Rails 3中是否有一种方法,没有对路由器中的所有类别和国家进行硬编码以获得我想要的URL,可能使用find_by_name或类似的?解决这个问题的最佳方式是什么?

2 个答案:

答案 0 :(得分:4)

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

然后你需要更新你的行动以使用params [:category_slug]和params [:country_slug]而不是id来查找所有内容。查看slugged gem以生成slu ..

答案 1 :(得分:3)

在您的类别模型中添加方法

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

其中category_name和location_name是您输入存储名称的位置。