我不确定我在这里做错了什么。文件上传正在运行,但如果我提交表单而未选择要上传的文件,则会删除以前附加的图像。
以下是ActiveAdmin表单的内容:
form do |f|
f.inputs do
f.input :model_number
f.input :description
f.input :slug
f.input :categories
f.has_many :product_images do |image|
image.input :product_id, as: :hidden, id: :product_id, input_html: { value: "%i" }
image.input :image
end
end
f.actions
end
各个型号的相关部分:
class ProductImage < ActiveRecord::Base
belongs_to :product
mount_uploader :image, ProductImageUploader
validates :image, :product_id, presence: true
end
class Product < ActiveRecord::Base
has_many :product_images, dependent: :destroy
accepts_nested_attributes_for :product_images
validates_associated :product_images
end
任何见解都会非常感激。谢谢!
答案 0 :(得分:4)
我的验证看起来有点过于热心了。从ProductImages验证中删除产品ID并将表单中的image.input :product_id, as: :hidden, id: :product_id, input_html: { value: "%i" }
简化为表单中的image.input :product_id, as: :hidden
,可以使图像正确附加到现有产品或新产品。