美好的一天。 有人在 Carrierwave 中以嵌套形式删除 Assets 的工作解决方案吗?
型号
has_many :article_images, :dependent => :destroy
accepts_nested_attributes_for :article_images
mount_uploader :image, ImageUploader
belongs_to :article, :polymorphic => true
架构.rb
create_table "article_images", :force => true do |t|
t.string "image"
t.string "article_id"
end
create_table "articles", :force => true do |t|
t.string "title"
end
Controller
def edit
@article = Article.find(params[:id])
@article.article_images.build
end
查看
_form.html.erb
<%= f.fields_for :article_images do |article_image| %>
<% if article_image.object.new_record? %>
<%= article_image.file_field :image %>
<% else %>
<%= image_tag(article_image.object.image.url(:thumb)) %>
<%= article_image.check_box :remove_image %> #DON'T WORK
<% end %>
<% end %>
最佳答案
我认为你这样做会更好:
class ArticleImage < ActiveRecord::Base
# ...
attr_accessible :remove_image
after_save :clean_remove_image
def changed?
!!(super || remove_image)
end
def clean_remove_image
self.remove_image = nil
end
end
它对我有用。
关于ruby-on-rails - 如何通过carrierwave删除nested_form中的asset?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9954754/