Ruby on rails carrierwave缓存多个文件

Ruby on rails carrierwave缓存多个文件,ruby-on-rails,carrierwave,Ruby On Rails,Carrierwave,我使用Carrierwave和Rails 5。我需要上传多个图像到某个实例。但如果验证失败,所有图像都将丢失。我发现并使用image_缓存缓存上传的文件,但它只适用于单个文件上传 以Carrierwave方式缓存多个文件以进行多个文件上载 谢谢。解决了Rails 5.1.4和Carrierwave 1.2.1的问题 我没有使用attr_accesor:图像 鉴于: = f.file_field :images, multiple: true = f.hidden_field :images_ca

我使用Carrierwave和Rails 5。我需要上传多个图像到某个实例。但如果验证失败,所有图像都将丢失。我发现并使用image_缓存缓存上传的文件,但它只适用于单个文件上传

以Carrierwave方式缓存多个文件以进行多个文件上载


谢谢。

解决了Rails 5.1.4和Carrierwave 1.2.1的问题

我没有使用attr_accesor:图像

鉴于:

= 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]作为JSON

您是否在github上有您的示例,可以共享?我尝试了你的解决方案,我得到了…意想不到的关键字,如果,不幸的是,我不记得我在哪个项目中使用了它。但是我建议你使用has_许多多态关联作为附件。谢谢,我刚刚在Post表单和Posts控制器的强参数中添加了images_cache作为隐藏字段,它似乎对我有用