我想为我的应用程序上的每个用户提供一个唯一的 URL,例如:www.mydomain.com/username。我怎样才能做到这一点?我在 Internet 上进行了搜索,但大多数人都在谈论为每个用户分配一个唯一的子域。就我而言,如果用户名与其他控制器(例如家庭或产品)冲突会发生什么。
提前致谢,
我想为我的应用程序上的每个用户提供一个唯一的 URL,例如:www.mydomain.com/username。我怎样才能做到这一点?我在 Internet 上进行了搜索,但大多数人都在谈论为每个用户分配一个唯一的子域。就我而言,如果用户名与其他控制器(例如家庭或产品)冲突会发生什么。
提前致谢,
路由是从上到下解析的,上面的比下面的更重要。
也就是说,您应该首先将所有路由(例如登录、内容页面等)放在文件中,然后它们类似于以下内容
get `/:username` => 'users#show`
接着
root :to => 'some#path'
因为 root 应该是文件中的最后一个。
上面的代码会做什么,它将路由所有与先前路由不匹配的请求以UsersController
显示带有params[:username]
集合的操作。因此,如果一个人去,/charinten
他们最终会UsersController#show
得到params[:username]
=> charinten
。
为了确保所有用户配置文件都可以访问,您需要创建一个受限关键字列表(例如“用户”、“会话”等),并且当用户设置他的用户名时,请确保它不是其中之一。有几种方法可以处理无效/受限的用户名,但我认为最好的方法是让用户选择另一个(就像用户名已经被使用一样)