【发布时间】:2013-04-29 03:19:50
【问题描述】:
我有 2 个 Carrierwave 上传者 - ItemUploader 和 ImageUploader,并且正在使用雾。
我可以将文件上传到 S3 就好了,但是进行销毁不会将它们从 S3 中删除。
这是我的destroy 操作:
def destroy
@item = Item.find(params[:id])
@item.destroy
respond_to do |format|
format.html { redirect_to items_url }
format.json { head :no_content }
end
end
当我执行item.destroy 时,它会从我的数据库中删除记录,但不会从 S3 中删除文件,也不会删除文件夹。
这是一个全新的 S3 存储桶,具有普通设置。还有一个全新的 Carrierwave 安装。
仅供参考:我尝试将 @item.remove_item! 和 @item.remove_image! 添加到控制器的销毁操作中,但这也没有成功。
编辑 1
所以看起来发生的事情是它删除了 1 个附件。
模型有这个:
class Item < ActiveRecord::Base
# image :string(255)
# link :string(255)
mount_uploader :link, ItemUploader
mount_uploader :image, ImageUploader
end
因此,当我在控制台中删除对象时,它会删除与 ItemUploader 关联的对象,而不是通过 ImageUploader 关联的图像。
为什么它会删除 1 而不是另一个?
【问题讨论】:
-
遇到了同样的问题,添加了
before_destroy :remove_image!来解决这个问题(如果它与某人相关,我也在使用github.com/lebedev-yury/carrierwave-base64)
标签: ruby-on-rails ruby-on-rails-3 amazon-s3 carrierwave fog