【问题标题】:Rails 3 Custom Validation for Email UniquenessRails 3 自定义验证电子邮件唯一性
【发布时间】:2014-04-16 07:22:08
【问题描述】:

我正在为我当前的项目使用 Riak 数据库,它不支持“唯一性”辅助方法。现在我想验证用户电子邮件的唯一性。如何编写唯一电子邮件地址的自定义验证??

【问题讨论】:

标签: ruby-on-rails ruby validation


【解决方案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

【讨论】:

  • “存在吗?” Riak 不支持该方法
  • 就像我说的 - 您可能需要修改该查询。但是,您测试是否存在具有特定值的记录,请执行此操作。如果您找到了,请按照我的说明添加错误。
【解决方案2】:

你可以在你的验证器中加入这样的东西:

Class User
  validate :unique_email_address?

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

end

如果您需要有关自定义验证器文件的帮助,请告诉我。

【讨论】:

    猜你喜欢
    • 2011-09-19
    • 1970-01-01
    • 2021-08-22
    • 2016-09-26
    • 1970-01-01
    • 2019-12-25
    • 2014-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多