我有一个网上商店:
这里的问题涉及两个表,产品和规模
产品的has_many大小
大小belongs_to的产品
管理员必须提供产品的属性加嵌套大小属性(:size_name
和:quantity
)时,他创建了一个产品
在产品的型号我有这样的“定制”验证:
validate :at_least_one_size
def at_least_one_size
if self.sizes.empty?
errors.add(:base, :require_size)
end
end
每一个产品销售的时候,相应的尺寸减小...
而当没有大小了,产品脱销...
现在,如果我要重新添加一些股票和更新我的新尺寸产品,我面对我的自定义验证错误...
由于我的产品是从规模,这是一样,如果它不再有效,我甚至不能更新...
我对我的自定义方法类似optional true
的东西想,但是是不正确的......我该怎么办?
如果你不介意的话,我将我的评论转化为答案,不离回答此问题。
既然你只需要在创建验证记录,您可以使用on
选项,它适用于自定义验证过
validate :at_least_one_size, on: :create