Rails URL问题

时间:2011-07-20 22:40:33

标签: ruby-on-rails ruby

如果我有一个用户模型,然后是个人用户,比如person1,有没有办法让网址:www.myapp.com/person1显示www.myapp.com/users/person1会是什么?那叫什么?

谢谢!

2 个答案:

答案 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'