如何在Rails中使用友好ID,如mysite.com/ [USERNAME]

时间:2010-03-12 03:07:55

标签: ruby-on-rails seo friendly-id

如何在Rails应用程序中使用友好URL? 我只需要提供以下网址格式

mysite.com/company1 mysite.com/user123 mysite.com/user1234 mysite.com/newton.garcia mysite.com/company-name

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:4)

我已经在Quora上问过这个问题..

http://www.quora.com/How-does-Quora-rewrite-their-urls

对于真正有兴趣实施Quora / Facebook网址的人。 这是Rails3中的一个提示:

制作一个名为slugs的表格:

#  slug | model_id |  model
# ===========================
# simple data:
#  one  |    2222    |  post
#  two  |    1111    |  user
#  six   |    5432    |  comment

现在在routes.rb中将此行添加到底部:

match '/:id', :to => proc { |env|
  id = env["action_dispatch.request.path_parameters"][:id]
  model = Slug.find_by_slug(id).model
  controller = [model.pluralize.camelize,"Controller"].join.constantize
  controller.action("show").call(env)
}, :as => :slugable

所以,如果我们转到路线中的/one,它会转换为:

id: one
so from the slugs table,
model: post
and the route will point to "posts#show"

现在在所有控制器的show操作中

@something = Model.find_by_slug(params[:id])

答案 1 :(得分:0)

您可以使用名为SubDomain-Fu的宝石。有关详细信息,请观看此screen cast