Ruby on rails 检查验证rails中的两个值在或条件中的唯一性
我在检查有两个条件的validates\u university\u时遇到问题 类名是InviteGuestRuby 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
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。