gpt4 book ai didi

arrays - Rails 5 CarrierWave,无法删除多重上传中的最后一个文件

转载 作者:行者123 更新时间:2023-12-02 08:10:56 28 4
gpt4 key购买 nike

按照此操作方法:

https://github.com/carrierwaveuploader/carrierwave/wiki/How-to:-Add-more-files-and-remove-single-file-when-using-default-multiple-file-uploads-feature

class ImagesController < ApplicationController
before_action :set_gallery

def create
add_more_images(images_params[:images])
flash[:error] = "Failed uploading images" unless @gallery.save
redirect_to :back
end

def destroy
remove_image_at_index(params[:id].to_i)
flash[:error] = "Failed deleting image" unless @gallery.save
redirect_to :back
end

private

def set_gallery
@gallery = Gallery.find(params[:gallery_id])
end

def add_more_images(new_images)
images = @gallery.images
images += new_images
@gallery.images = images
end

def remove_image_at_index(index)
remain_images = @gallery.images # copy the array
deleted_image = remain_images.delete_at(index) # delete the target image
deleted_image.try(:remove!) # delete image from S3
@gallery.images = remain_images # re-assign back
end

def images_params
params.require(:gallery).permit({images: []}) # allow nested params as array
end
end

我似乎无法正确删除最后一个文件。在我的打印文件列表中,它一直站在那里。奇怪的是 0kb。

然后,当我加载新文件时,这个文件就会消失。

最佳答案

我遇到了同样的问题,我发现你必须调用“remove_images!”如果这是最后一次的话。在“remove_image_at_index”函数中添加:

@gallery.remove_images! if remain_images.empty?

问候

关于arrays - Rails 5 CarrierWave,无法删除多重上传中的最后一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39148470/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com