Rails 3自定义验证电子邮件唯一性

时间:2014-04-16 07:22:08

标签: ruby-on-rails ruby validation

我正在将Riak数据库用于我当前的项目,该项目不支持" uniqueness"辅助方法。现在我想验证用户电子邮件的唯一性。如何为独特的emial地址编写自定义验证?

2 个答案:

答案 0 :(得分:1)

尝试这样的事情。如果这不适用于您的数据库,则可能需要修改User.exists?部分。

class User
  validate :verify_unique_email

  def verify_unique_email
    if User.exists? email: email
      errors.add :email, 'has already been taken'
    end
  end
end

答案 1 :(得分:0)

您可以在验证器中输入类似的内容:

Class User
  validate :unique_email_address?

  def unique_email_address?
    return false if User.where(email: self.email).any?
  end

end

如果您需要有关自定义验证程序文件的帮助,请与我们联系。