gpt4 book ai didi

ruby-on-rails - Rails 模型反向验证的唯一性

转载 作者:太空宇宙 更新时间:2023-11-03 18:27:31 26 4
gpt4 key购买 nike

我的 Rails 模型有两个属性 :ticket_id:parent_ticket_id。我想验证只有记录具有这两个值。例如,

4和1应该只有一条记录

:ticket_id => 4, :parent_ticket_id => 1

而且我不希望任何更多的行以任何组合具有这两个相同的值。没有任何类型的 (1,4) 或 (4,1)。

验证 :ticket_id, :uniqueness => true, :scope => :parent_ticket_id 是否有效?我想这只会阻止 (1,4) 组合而不是 (4,1)..

最佳答案

您可以在自定义验证器中执行此操作(此查询在一个查询中看起来是双向的,而 Salil 使用两个不同的查询来执行):

validate :ticket_and_parent_ticket_are_unique

private
def ticket_and_parent_ticket_are_unique
errors.add(:base, 'They are not unique') if ModelName.exists?(:ticket_id => [self.ticket_id, self.parent_ticket_id], :parent_ticket_id => [self.ticket_id, self.parent_ticket_id])
end

关于ruby-on-rails - Rails 模型反向验证的唯一性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8997947/

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