gpt4 book ai didi

mysql - 跨多列的续集唯一验证

转载 作者:行者123 更新时间:2023-11-29 11:47:34 25 4
gpt4 key购买 nike

我正在尝试添加 validates_unique使用 Sequel gem 和 MySQL 数据库进行验证。

如果 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

我正在努力将其映射到续集验证。任何指导表示赞赏。

最佳答案

添加custom validation而不是 validates_unique 解决了问题。

errors.add(:unconfirmed_email, 'email in use') if email_in_use?(unconfirmed_email)

还有一个私有(private)方法

def email_in_use?(email)
EmailAddress.where(confirmed_email: email).first ? true : false
end

关于mysql - 跨多列的续集唯一验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34664898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com