我有 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 而不是另一个?