evf*_*qcg 1 ruby-on-rails devise ruby-on-rails-3
是否可以使用设计自动根据自己的电子邮件创建用户名?
在注册页面上,我只有电子邮件和密码字段.
例如,当用户使用电子邮件创建新帐户时randomname@gmail.com,我希望他的用户名自动成为randomname.我怎么能完成它?
您可以使用正则表达式获取电子邮件地址的第一部分^[^@]+,这将从@符号前的字符串开头返回所有内容.
^ /* start of string or line */
[^@] /* character class capturing everything except @ */
+ /* match must happen atleast one time */
Run Code Online (Sandbox Code Playgroud)
要将用户名添加到数据库,可以使用回调.
class User < ActiveRecord::Base
before_create :set_username
private
def set_username
self.username = self.email[/^[^@]+/]
end
end
Run Code Online (Sandbox Code Playgroud)