设计.根据他的电子邮件自动创建用户名

evf*_*qcg 1 ruby-on-rails devise ruby-on-rails-3

是否可以使用设计自动根据自己的电子邮件创建用户名?

在注册页面上,我只有电子邮件和密码字段.

例如,当用户使用电子邮件创建新帐户时randomname@gmail.com,我希望他的用户名自动成为randomname.我怎么能完成它?

Ben*_*ate 7

您可以使用正则表达式获取电子邮件地址的第一部分^[^@]+,这将从@符号前的字符串开头返回所有内容.

^ /* 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)

  • 如果有人,我们有hoobas@gmail.com和hoobas@yahoo.com怎么解决这个冲突怎么办? (2认同)