我有一个具有多个“资产”的模型“文章”,这是一个多态模型,我使用回形针将图像附加到。当我编辑一篇文章时,我希望能够删除旧图像,并在同一笔画中添加新图像。我正在使用 fields_for,它看起来足够通用,因为Rails API 说我可以将它用于特定的资产实例。所以这是我表格的相关部分:
形式:
=f.fields_for :assets do |ff|
=ff.label "image"
=ff.file_field :image
-unless @article.assets.first.image_file_name.nil?
-@article.assets.each do |asset|
=f.fields_for :assets, asset do |fff|
=image_tag(asset.image.url(:normal))
=fff.label "delete image"
=fff.check_box :_destroy
第一个fields_for
是为文章添加图像,第二个部分是删除已经存在的资产。此表单可以添加资产、删除资产,但不能同时进行。这就是问题所在。我怀疑check_box
没有足够的指导或什么。
资产模型:
class Asset < ActiveRecord::Base
belongs_to :imageable, :polymorphic => true
has_attached_file :image, :styles => { :normal => "100%",:small => "100 x100>",:medium => "200x200>", :thumb => "50x50>" },
:storage => :s3,
:s3_credentials => "#{Rails.root}/config/s3.yml",
:path => "/:attachment/:id/:style/:filename"
文章控制器/编辑:
def edit
@article = Article.find(params[:id])
@assets = @article.assets
if @assets.empty?
@article.assets.build
end
end
我期待看到您的回复。