Ruby on rails 检查验证rails中的两个值在或条件中的唯一性

Ruby on rails 检查验证rails中的两个值在或条件中的唯一性,ruby-on-rails,activerecord,activemodel,validates-uniqueness-of,Ruby On Rails,Activerecord,Activemodel,Validates Uniqueness Of,我在检查有两个条件的validates\u university\u时遇到问题 类名是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_uni

我在检查有两个条件的validates\u university\u时遇到问题

类名是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] 
class-InviteGuest:random\u no?
验证以下内容的唯一性::email,:scope=>[:invite\u id]
在这里,我正在检查
invite\u id
:random
号码是否存在。 因此,我的
:email
字段首先输入的是unique
:random\u no
,它工作正常;m
验证:email,:scope=>[:invite\u id]
的唯一性,但它不允许我为不同的
:random\u no
输入相同的
:email
。我必须提出条件。它正在检查
:invite\u id
,但如果
:invite\u id
不存在,我想检查它的
:random\u no
。但它不允许我为不同的
:random\u no
输入
:email


有什么想法吗???

听起来好像你的范围设置不正确。您应该在
random\u no
上确定范围:

validates_uniqueness_of :email, scope: [:invite_id, :random_no]

这是很难理解的,你能补充一些关于你的目标是什么的上下文吗?但你能不能检查一下这封独特的电子邮件,看看我的意思和关系??我想检查邀请id(如果存在),如果没有,则检查限制同一电子邮件的随机编号。但上面的代码不允许我检查邀请id的唯一电子邮件,这是非常直接的代码。但我在验证:invite\u id,:除非=>:random\u no的存在时感到困惑?如果:invite\u id不存在,此代码是否自动检查:random\u no??因为它不是。它给了我验证错误,因为没有:invite_id,相同的:email试图插入diff:random_no。