从Rails3视图中删除公用文件夹或文件?

时间:2013-10-11 13:55:02

标签: ruby-on-rails ruby ruby-on-rails-3 paperclip

我有一个用户模型,用户可以使用Paperclip gem上传他们的个人资料图片。这一切都运行正常,并将文件存储在/public/images/#{user.id}/medium或原始或小目录中。

但是我需要创建一个能够删除这些文件的方法,有人可以帮我解决这个问题吗?

这是我到目前为止的代码:

应用程序/视图/用户/ index.html.erb:

<%= link_to "Delete", method: :file_cleanup, action: :destroy %>

应用程序/控制器/ users_controllers.rb:

def file_cleanup
    File.delete(Rails.root + 'public/#{current_user.image.url}')
    redirect_to :action => :edit
end

我没有添加任何路由,因为页面似乎加载没有任何错误。

1 个答案:

答案 0 :(得分:1)

应该如此简单:

def delete_image
  @user.image.destroy
end

我会将其用作before_destroy :delete_image之类的钩子。

请参阅:Rails Paperclip how to delete attachment?