我尝试使用Sequel gem和MySQL数据库添加validates_unique验证。
如果column2
的值与column3
中的现有值匹配,我希望验证失败,因此类似以下(非工作)示例:
validates_unique(:email_address){|ds| ds.where('unconfirmed_email NOT LIKE confirmed_email')}
这是sqlfiddle,我已将此查询用于所需结果:
SELECT DISTINCT value
FROM (
SELECT DISTINCT confirmed_email AS value FROM email_addresses
UNION SELECT DISTINCT unconfirmed_email AS value FROM email_addresses
) AS derived
我正在努力将其映射到续集验证。任何指导都表示赞赏。
答案 0 :(得分:1)
添加custom validation代替stdtQ.add(new Student(sc.hasNext(), sc.nextInt()));
解决了这个问题。
validates_unique
私人方法
errors.add(:unconfirmed_email, 'email in use') if email_in_use?(unconfirmed_email)
答案 1 :(得分:0)
索引column3并只查询您的表,以查找您要验证的column2中的任何值。如果您的查询生成记录,那么您的验证将失败。