0

我目前正在尝试创建一个注册表单,其中包含一个字符串

“first_last”并添加“@exampledomain.com”以创建“first_last@exampledomain.com”并将其写入数据库。

但是,如果用户键入完整的域,我不想添加两次,所以我需要一个方法来检查“@exampledomain.com”是否已经存在。我不想以“first_last@exampledomain.com@exampledomain.com”结尾,因为它将无法验证并惹恼用户。

到目前为止,我已将其放入我的用户模型中:

before_validation { concatenate_email }

VALID_EMAIL_REGEX = /[a-zA-Z]{1,}[_]{1}[a-zA-Z]{1,}@exampledomain.com/i

validates :email, presence:   true,
                format:     { with: VALID_EMAIL_REGEX },
                uniqueness: { case_sensitive: false }

def concatenate_email
  @mail = self.email.match('@asamacm.com')
  if @mail = nil
    self.email.concat('@asamacm.com')
  else
  end
end

我是 Rails 和 ruby​​ 的新手,所以如果我的术语不正确,我深表歉意。

4

1 回答 1

1

这是另一种方法

def concatenate_email
  self.email.concat('@asamacm.com') unless self.email =~ /@asamacm.com/
end
于 2013-10-02T16:45:00.960 回答