繁体   English   中英

载波缓存多个文件

[英]carrierwave cache multiple files

我将Carrierwave与Rails 5一起使用。我需要将多个图像上传到某个实例。 但是,如果验证失败,则所有图像都会丢失。 我发现并使用image_cache来缓存上传的文件,但是它仅适用于单个文件上传。

以Carrierwave方式缓存多个文件以上传多个文件。

谢谢。

解决了Rails 5.1.4,Carrierwave 1.2.1

我没有attr_accesor :images

鉴于:

= f.file_field :images, multiple: true
= f.hidden_field :images_cache

在控制器中:

def create
  @instance = Model.new(permited_parameters)
  add_images
  ..........
  @instance.save
end

private

def permited_parameters
  params.require(:model_name).permit(..., ..., :images_cache)
end

def add_images
  new_images = params.dig(:model_name, :images) ||
               params.dig(:model_name, :images).presence &&
               JSON.parse(params.dig(:model_name, :images))
  if new_images
    images = @instance.images
    images += new_images
    @instance.images = images
  end
end

问题出在缓存的数据类型中。 缓存的数据[Array] as JSON位于[Array] as JSON

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM