gpt4 book ai didi

ruby-on-rails - 在 Rails 自定义验证中使用范围

转载 作者:行者123 更新时间:2023-12-04 06:25:01 25 4
gpt4 key购买 nike

我想在我的自定义验证中应用范围限制器

我有这个产品型号
其中有 make,model,serial_number, vin 作为属性

现在我有一个自定义验证来检查 vin 如果 vin 不存在来检查数据库中 make+model+serial_number 唯一性的组合是这样的

validate :combination_vin,:if => "vin.nil?"


def combination_vin 
if Product.exists?(:make => make,:model => model,:serial_number => serial_number)
errors.add(:base,"The Combination of 'make+model+serial_number' already present")
end
end

我想在这个验证器中针对 user_id 引入一个范围

现在我知道我可以很容易地写这个来实现相同的使用
 def combination_vin
if Product.exists?(:make => make,:model => model,:serial_number => serial_number,:user_id => user_id)
errors.add(:base,"The Combination of 'make+model+serial_number' already present")
end
end

但出于好奇,我在想自定义验证是否有范围验证器(类似于 {:scope => :user_id} )
这样我就不必通过额外的 用户 ID 存在吗?哈希

谢谢

最佳答案

尝试 :

validate :combination_vin , :uniqueness => { :scope => :user_id } , :if => "vin.nil?"

关于ruby-on-rails - 在 Rails 自定义验证中使用范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10203078/

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