轨道协会 - 至少有一个



我有一个模型ShippingOption,它has_many ShippingSpeedOptions

还有一个要求:

  • 一个ShippingOption必须至少有一个ShippingSpeedOption,这应该被验证,因为它在接口中是可移动的

所以我在ShippingOption上使用自定义验证:

  def has_at_least_one_shipping_speed_option
    errors.add(:shipping_speed_options, "Must have at least one delivery speed package") if self.shipping_speed_options.count <= 0
  end

问题是,通过此验证,根本无法保存ShippingOption,因为它没有ShippingSpeedOptions。关联由 ShippingSpeedOption 中的shipping_option_id定义。

我应该如何处理?

使用 build ,它会产生"等待中的关联",该关联将在保存对象时创建。

@shipping_option = ShippingOption.new
@shipping_option.shipping_speed_options.build(:shipping_speed => <speed>)
@shipping_option.save 
#at this point the validation is satisfied, @shipping_option is saved and the option is created.

相关内容

  • 没有找到相关文章

最新更新