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