0

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

http://mysite.com/theirusername

目前,我的用户模型验证之一只是从硬编码列表中拒绝列入黑名单的用户名。

有没有比硬编码列表更好的方法来做到这一点?例如检查路线(代码示例?)

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

4

1 回答 1

1

用这个:

get ':id', :to => "users#show"

然后你可以做类似http://mysite.com/theirusername的事情。UsersController#show在你需要使用的动作里面User.find_by_username(params[:id])

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

您的目标应该是拥有一些黑名单功能,这很容易使用User模型中的单词列表来完成,然后使用validates_exclusion_of.

于 2012-01-02T22:30:14.660 回答