是否可以使用设计自动根据自己的电子邮件创建用户名?
在注册页面上,我只有电子邮件和密码字段。
例如,当用户使用电子邮件randomname@gmail.com
创建新帐户时,
我希望他的用户名自动成为randomname
。我怎么能完成它?
答案 0 :(得分:5)
您可以使用^[^@]+
这样的正则表达式获取电子邮件地址的第一部分,这将返回@
符号前字符串开头的所有内容。
^ /* start of string or line */
[^@] /* character class capturing everything except @ */
+ /* match must happen atleast one time */
要将用户名添加到数据库,可以使用callback。
class User < ActiveRecord::Base
before_create :set_username
private
def set_username
self.username = self.email[/^[^@]+/]
end
end
答案 1 :(得分:0)
要考虑具有相同名称但不同网址的电子邮件,您可以在最后添加随机数。
self.username = "#{self.email[/^[^@]+/]}-#{SecureRandom.hex(1)}"
这会将hoobas-1f
hoobas-3c
返回到上述评论中的两封电子邮件。