Table 1 - Product
has_many :widget_groups
accepts_nested_attributes_for :produts_widget_groups
validates_uniqueness_of :name, on: :create,
if: proc { |product| product.has_category? }
Table 2 - ProductsWidgetGroup
belongs_to :product
belongs_to :widget_group
has_many :products_widget_group_deatils
Table 3 - ProductsWidgetGroupDetail
belongs_to :products_widget_group
belongs_to :product
accepts_nested_attributes_for :product
我有一个表单,用于将产品保存在(表1)中,并发送表2和表3的嵌套属性。
在这里,我尝试将要保存的产品的唯一名称验证放入表3中,但是我对此有一些疑问。
我需要获取表1的产品对象的模型验证错误消息,然后才可以在叶端显示错误。但是,这里的验证错误消息将转到表3的产品对象。无论如何,我们可以实现这一目标吗?
答案 0 :(得分:0)
有了这个,您会得到一个:product=>["is invalid"]
,我认为这不是您想要的:
class ProductsWidgetGroupDetail
validates_associated :product
但是您也可以尝试以下方法:
class ProductsWidgetGroupDetail
validates :product_validation
private
def product_validation
@errors.merge!(product.instance_variable_get(:@errors))
end