Ruby on rails carrierwave缓存多个文件
我使用Carrierwave和Rails 5。我需要上传多个图像到某个实例。但如果验证失败,所有图像都将丢失。我发现并使用image_缓存缓存上传的文件,但它只适用于单个文件上传 以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
谢谢。解决了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作为隐藏字段,它似乎对我有用