我有一个用devise + omniauth进行用户认证的应用程序。生成唯一的用户名(omniauth + devise)
在我的模型中,我的应用程序中的用户名是唯一。我不希望重复的用户名在我的应用程序中。
Facebook中的某些用户在其个人资料中没有定义的用户名。
我想生成一个唯一的用户名,如果用户没有在Facebook中定义的用户名。
例如,对于生成的密码我有这样的:
:password => Devise.friendly_token[0,20]
我能在我的应用程序唯一的用户名,如果Facebook的用户没有在Facebook的用户名?
谢谢
谢谢你,你能不能写个例子吗?谢谢@alony;)。我曾经想过:'user.username =“user _#{user.id.to_s}”'。我正在使用mongoid。我的ids是''4f72ee7e1d41c87cb1000001“'。我不知道我的修正是否正确! – hyperrjas 2012-03-28 11:05:50
我总是这样做: 'user.username = user.email [/^[^ @] * /]',它看起来不错,但可能会重复。在你的情况下,你可以这样做:'user.username =“#{user.email [/^[^ @] * /]}##{user.id.to_s [0..5]}”' - 第一个6只是不要让它太长:) – alony 2012-03-28 11:35:23
谢谢你对我的工作很好:D。但用0..5可能会重复吗?谢谢。 – hyperrjas 2012-03-28 13:00:18