我想在我的自定义验证中应用范围限制器
我有这个产品模型,它有 make,model,serial_number, vin 作为属性
现在我有一个自定义验证来检查 vin 如果 vin 不存在来检查数据库中 make+model+serial_number 唯一性的组合,就像这样
验证 :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}),这样我就不必在存在时传递那个额外的user_id了?哈希
谢谢