Ruby on rails 当对象A的has-A对象B验证失败时,如何使对象A验证失败
我有一个表单,其中包含用于创建产品对象的数据。该产品与以下图像有关系:Ruby on rails 当对象A的has-A对象B验证失败时,如何使对象A验证失败,ruby-on-rails,Ruby On Rails,我有一个表单,其中包含用于创建产品对象的数据。该产品与以下图像有关系: has_one :image 在我看来,我有这样一个文件输入: <%= f.file_field :image_file %> 图像模型知道如何处理输入数据,并具有验证规则。 问题是,如果验证失败,我的产品将在没有图像的情况下创建 如何使验证错误返回到产品,从而使产品根本不被创建,从而可以在表单上显示错误? 由于我是Rails新手,如果我做错了,请告诉我。你可以使用它我通过创建一个自定义验证器来完成它: va
has_one :image
在我看来,我有这样一个文件输入:
<%= f.file_field :image_file %>
图像模型知道如何处理输入数据,并具有验证规则。
问题是,如果验证失败,我的产品将在没有图像的情况下创建
如何使验证错误返回到产品,从而使产品根本不被创建,从而可以在表单上显示错误?
由于我是Rails新手,如果我做错了,请告诉我。你可以使用它我通过创建一个自定义验证器来完成它:
validate :associated_image
方法如下:
def associated_image
if image && !image.valid?
image.errors.each { |attr, msg| errors.add(:image_file, msg)}
end
end
感谢Gareth为我指明了
验证\u关联的
,但问题是您丢失了来自关联对象的实际错误消息。谢谢,这似乎就是我一直在寻找的。但是,它会输出一条默认错误消息,我似乎无法从失败的验证中获得实际的错误消息,可以吗?
def associated_image
if image && !image.valid?
image.errors.each { |attr, msg| errors.add(:image_file, msg)}
end
end