我在检查validates_uniqueness_of有两个条件时遇到问题。
类名是InviteGuest
class InviteGuest < ActiveRecord::Base
attr_accessible :invite_id, :email, :first_name, :last_name, :random_no
validates_presence_of :invite_id, :unless => :random_no?
validates_uniqueness_of :email, :scope => [:invite_id]
这里我正在检查invite_id
或:random
号码是否存在。所以这里我的:email
字段首先进入唯一的:random_no
.这工作得很好。和i;m validates_uniqueness_of :email, :scope => [:invite_id]
,但它不允许我为不同的:random_no
输入相同的:email
。我必须放或条件。它正在检查:invite_id
,但如果:invite_id
不存在,我想检查:random_no
。但它不允许我为不同的:random_no
输入:email
。
任何想法?
听起来你的作用域设置不正确。您应该在random_no
上设置作用域:
validates_uniqueness_of :email, scope: [:invite_id, :random_no]