【问题标题】:Check validates_uniqueness_of in rails for two values in or condtion检查 rails 中的 validates_uniqueness_of 以获取 or 条件中的两个值
【发布时间】:2014-05-23 12:15:35
【问题描述】:

我在检查具有两个条件的 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 进入。它工作正常。我;我validates_uniqueness_of :email, :scope =&gt; [:invite_id] 但它不允许我为不同的:email 输入相同的:email。我必须提出或条件。它正在检查:invite_id,但如果:invite_id 不存在,我想检查一下:random_no。但它不允许我为不同的:random_no 输入:email

有什么想法吗??

【问题讨论】:

  • 这很难理解,您能否添加更多关于您的目标的背景信息。

标签: ruby-on-rails activerecord activemodel validates-uniqueness-of


【解决方案1】:

听起来您的范围设置不正确。你应该在random_no:

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

【讨论】:

  • 但是是否有人会检查我的意思是和关系的两个值的唯一电子邮件?如果存在,我想检查invite_id,如果没有,则检查random_no 以限制相同的电子邮件。但上面的代码不允许我检查唯一电子邮件的invite_id,这是非常直截了当的代码。但我对 validates_presence_of :invite_id, :unless => :random_no 感到困惑?如果 :invite_id 不存在,则使用此代码自动检查 :random_no 吗?因为它不是。它给了我验证错误,因为没有 :invite_id 和相同的 :email 正在尝试插入 diff :random_no。
猜你喜欢
  • 1970-01-01
  • 2011-07-24
  • 2018-04-28
  • 2019-08-08
  • 1970-01-01
  • 2012-09-15
  • 1970-01-01
  • 2020-01-13
  • 1970-01-01
相关资源
最近更新 更多