创建工程和更新失败,因为自定义验证的

问题描述 投票:1回答:1

我有一个网上商店:

这里的问题涉及两个表,产品和规模

产品的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的东西想,但是是不正确的......我该怎么办?

ruby-on-rails
1个回答
2
投票

如果你不介意的话,我将我的评论转化为答案,不离回答此问题。

既然你只需要在创建验证记录,您可以使用on选项,它适用于自定义验证过

validate :at_least_one_size, on: :create
© www.soinside.com 2019 - 2024. All rights reserved.