由于自定义验证,创建作品和更新失败

时间:2019-02-04 08:35:02

标签: ruby-on-rails

我有一家网上商店:

这里的问题涉及两个表,产品和尺寸

产品有多种尺寸

大小属于产品

管理员在创建产品时必须提供产品属性以及嵌套尺寸属性(: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之类的东西,但不正确... 我该怎么办?

1 个答案:

答案 0 :(得分:2)

如果您不介意,我会把我的评论转换为答案,以免问题没有答案。

由于只需要在创建时验证记录,因此可以使用on选项,它也适用于自定义验证

validate :at_least_one_size, on: :create