如何在Rails应用程序中使用友好URL? 我只需要提供以下网址格式
mysite.com/company1 mysite.com/user123 mysite.com/user1234 mysite.com/newton.garcia mysite.com/company-name
有人可以帮忙吗?
答案 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。