Rails:唯一性验证器不尊重范围

时间:2014-07-16 21:34:27

标签: ruby-on-rails devise

我遇到了这个问题并且希望发布这个问题,以便其他人不会花太多时间像我一样把头撞在墙上。


我有一个User模型。在User模型上,我uniqueness验证了email属于其type属性的属性。见下文:

class User < ActiveRecord::Base
  devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable

  validates :email,
    uniqueness: {
      scope: :identifier
    }
end

但是,UniquenessValidator不尊重将email唯一性验证程序限定为其identifier属性的事实。

这里发生了什么?

1 个答案:

答案 0 :(得分:1)

发生了什么:

设计validatable模块覆盖uniqueness email验证码。只需删除此模块,我就可以验证我的电子邮件uniqueness作用于其identifier属性。

class User < ActiveRecord::Base

  # removed :validatable

  devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable


  validates :email,
    uniqueness: {
      scope: :identifier
    }
end