【问题标题】:Assign unique subfolder routes to each user Devise and Rails为每个用户 Devise 和 Rails 分配唯一的子文件夹路径
【发布时间】:2013-07-18 09:14:12
【问题描述】:

我想为我的应用程序中的每个用户提供一个唯一的 URL,例如:www.mydomain.com/username。我怎样才能做到这一点?我在 Internet 上进行了搜索,但大多数人都在谈论为每个用户分配一个唯一的子域。就我而言,如果用户名与其他控制器(例如家庭或产品)冲突会发生什么。

提前致谢,

【问题讨论】:

    标签: ruby-on-rails devise routes subdirectory


    【解决方案1】:

    路由是从上到下解析的,上面的比下面的更重要。

    也就是说,您应该首先将所有路由(例如登录、内容页面等)放在文件中,然后将它们类似于以下内容

    get `/:username` => 'users#show`
    

    然后

    root :to => 'some#path'
    

    因为 root 应该是文件中的最后一个。

    上面的代码会做什么,它将所有与先前路由不匹配的请求路由到UsersController show action with params[:username] set。所以如果一个人去/charinten,他们最终会在UsersController#showparams[:username] => charinten

    为确保所有用户配置文件都可以访问,您需要创建一个受限关键字列表(例如“用户”、“会话”等),并在用户设置他的用户名时确保它不是其中之一。有几种方法可以处理无效/受限的用户名,但我认为最好的方法是让用户选择另一个(就像用户名已经被使用一样)

    【讨论】:

      猜你喜欢
      • 2012-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-15
      • 2011-01-08
      • 2019-01-08
      • 2010-12-25
      • 1970-01-01
      相关资源
      最近更新 更多