我有一家网上商店:
这里的问题涉及两个表,产品和尺寸
产品有多种尺寸
大小属于产品
管理员在创建产品时必须提供产品属性以及嵌套尺寸属性(: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
之类的东西,但不正确...
我该怎么办?
答案 0 :(得分:2)
如果您不介意,我会把我的评论转换为答案,以免问题没有答案。
由于只需要在创建时验证记录,因此可以使用on
选项,它也适用于自定义验证
validate :at_least_one_size, on: :create