Creating SEO friendly URLs in Rails 3

江枫思渺然 提交于 2019-12-03 13:46:11

问题


I currently have URLs which look like this:

things?category_id=6&country_id=17

and I would like to have URLs which look like this:

/printer_cartridges/united_kingdom

Is there a way in Rails 3, without hard coding all of the categories and countries in the router to have the URLs as I would like above, perhaps using find_by_name or the such like? What is the best way to approach this?


回答1:


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

Then you'll need to update your action to look up everything using params[:category_slug] and params[:country_slug] instead of the ids. Look at the slugged gem to generate slugs.




回答2:


In your category model add the method

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

where category_name and location_name are where you input where you have have the names stored.



来源:https://stackoverflow.com/questions/4995759/creating-seo-friendly-urls-in-rails-3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!