如果我有一个用户模型,然后是个人用户,比如person1,有没有办法让网址:www.myapp.com/person1
显示www.myapp.com/users/person1
会是什么?那叫什么?
谢谢!
答案 0 :(得分:4)
您应该在routes.rb
文件中定义路线:
match "/:user" => "users#show"
您将获得params[:user]
中提供的用户名。但是你需要知道这种路由可以覆盖定义的其他路由,因为它将匹配任何字符串,所以你至少应该在用户名上定义一些约束。
例如,如果您的用户名与正则表达式匹配,则可以将其定义为约束
match "/:user" => "users#show", :constraints => { :user => /some-regexp/ }
并且不要忘记将此路线设置为路线文件中的最后一条路线,否则会与其他路线发生冲突。
阅读this以获取完整参考资料
答案 1 :(得分:0)
为您的应用添加“两条”路线。
# Shorter url to show store items by tags
map.connect '/s/tags',
:controller => 'music',
:action => 'show_by_tags'
map.connect '/music/s/tags',
:controller => 'music',
:action => 'show_by_tags'