是否有可能创建用户名通过设计自动根据他的邮件?
在注册页面,我只有电子邮件和密码字段。
例如,当用户创建电子邮件新的帐户randomname@gmail.com
,我想,他的用户名自动成为randomname
。 我怎样才能做到呢?
是否有可能创建用户名通过设计自动根据他的邮件?
在注册页面,我只有电子邮件和密码字段。
例如,当用户创建电子邮件新的帐户randomname@gmail.com
,我想,他的用户名自动成为randomname
。 我怎样才能做到呢?
你可以得到的电子邮件地址的firstpart与像一个正则表达式^[^@]+
,这会从之前的字符串的开头返回的一切@
符号。
^ /* 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
为了说明具有相同名称但不同的网址,你可以在末尾添加一个随机数的电子邮件。
self.username = "#{self.email[/^[^@]+/]}-#{SecureRandom.hex(1)}"
这将返回hoobas-1f
的hoobas-3c
中的注释,以两个以上的电子邮件。