我遇到了这个问题并且希望发布这个问题,以便其他人不会花太多时间像我一样把头撞在墙上。
我有一个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
属性的事实。
这里发生了什么?
答案 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