如果我有一个 Users 模型,然后是一个单独的用户,例如 person1,有没有办法让 url: www.myapp.com/person1
显示 www.myapp.com/person1 的内容。 myapp.com/users/person1
会吗?那叫什么?
谢谢!
最佳答案
您应该在 routes.rb
文件中定义一条路由:
match "/:user" => "users#show"
您将获得params[:user]
中给出的用户名。但你需要知道这种路由可能会覆盖其他定义的路由,因为它会匹配任何字符串,所以你至少应该对用户名定义一些约束。
例如,如果您的用户名与正则表达式匹配,您可以将其定义为约束
match "/:user" => "users#show", :constraints => { :user => /some-regexp/ }
并且不要忘记将此路由设置为路由文件中的最后一个路由,否则它肯定会与其他路由发生冲突。
阅读this完整引用
关于ruby-on-rails - Rails URL 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6769390/