Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 从根url路由用户名并防止冲突_Ruby On Rails_Ruby On Rails 3_Routes_Url Scheme - Fatal编程技术网

Ruby on rails 从根url路由用户名并防止冲突

Ruby on rails 从根url路由用户名并防止冲突,ruby-on-rails,ruby-on-rails-3,routes,url-scheme,Ruby On Rails,Ruby On Rails 3,Routes,Url Scheme,我想像twitter.com那样(和许多其他网站一样),为我的用户提供如下URL: http://mysite.com/theirusername 目前,我的一个用户模型验证简单地拒绝硬编码列表中的黑名单用户名 有没有比硬编码列表更好的方法?e、 g.检查路线(代码示例?) 运营这样一个网站的人的任何智慧之言都将受到重视!我相信你一定遇到过这样的情况:你想为一些新功能使用URL,但有人将其用作用户名。这种情况经常出现吗?有什么办法来处理?我想你可以选择另一个名字,使用子域,或者要求用户重命名。也

我想像twitter.com那样(和许多其他网站一样),为我的用户提供如下URL:

http://mysite.com/theirusername

目前,我的一个用户模型验证简单地拒绝硬编码列表中的黑名单用户名

有没有比硬编码列表更好的方法?e、 g.检查路线(代码示例?)

运营这样一个网站的人的任何智慧之言都将受到重视!我相信你一定遇到过这样的情况:你想为一些新功能使用URL,但有人将其用作用户名。这种情况经常出现吗?有什么办法来处理?我想你可以选择另一个名字,使用子域,或者要求用户重命名。也许把一些常见的英语名词列入黑名单是值得的?还有其他吗?

请使用以下命令:

get ':id', :to => "users#show"
然后你可以做类似的事情。在
userscoontroller#show
操作中,您需要使用
User.find by_username(params[:id])

如果有人已经在使用您希望在将来使用的用户名,请向他们发送一封电子邮件,告知更改情况(您的条款和条件中也应该有类似的内容),并给他们一段时间进行更改


你应该有一些黑名单功能,这很容易在你的
用户
模型中创建一个单词列表,然后用
验证
的排除

嗨,谢谢,我实际上已经有这个工作了抱歉,如果不清楚的话。我的问题更多的是直接从路由中验证用户名(而不是硬编码列表),以及防止和处理与我将来可能要添加的URL冲突的策略。对不起,我一定是问不出这个问题。我试图询问如何从路由动态构建黑名单,而不是维护一个恒定的列表。实际上我已经在用一个静态列表来验证排除。谢谢你的帮助。我在这里问了一个希望更清楚的问题,你不能从路线上动态地做到这一点。。。至少很容易。检查
Rails.application.routes.routes的输出,然后从那里开始。