如何使用link_to删除Paperclip附件?

时间:2014-09-10 19:30:46

标签: ruby-on-rails paperclip

我发现这个solution使用复选框作为标记来删除图像。但是,我想使用link_to。基本上,在图片附件旁边,我想要一个"删除头像"链接。如果可能,我希望链接只删除图像,而不是更新其他属性。

用户类

class User < ActiveRecord::Base
  has_attached_file :avatar
  attr_accessible :avatar

以表格

link_to "Delete Avatar", {:action => :update}, :method => :put

显然,这还没有实际删除图像。最好的方法是什么?让链接设置隐藏标志,然后更新?或者这只是一个坏主意(如果是这样的话)?

1 个答案:

答案 0 :(得分:8)

创建一个补丁路由,以删除带有user_id的附件以及控制器中的匹配操作

link_to 'Delete Avatar', {action: :action_name, id: user.id}, method: :put

def action_name
  # use either/or depending on your usecase
  @user.avatar.destroy #Will remove the attachment and save the model
  @user.avatar.clear #Will queue the attachment to be deleted
end