我有一个使用Carrierwave内置多文件上传器的应用程序。我正在尝试使用Jasny的Bootstrap文件输入插件实现基本的图像预览和管理(只需要能够删除所选图像),但我没有运气。
它适用于一个图像,但不适用于多个图像。
我的模特:
class Ad < ActiveRecord::Base
mount_uploaders :images, AdImagesUploader
class AdImagesUploader < CarrierWave::Uploader::Base
我的表格:
= simple_form_for @ad do |f|
- 5.times do |i|
.fileinput.fileinput-new{"data-provides" => "fileinput"}
.fileinput-preview.thumbnail{"data-trigger" => "fileinput", :style => "width: 200px; height: 150px;"}
%div
%span.btn.btn-default.btn-file
%span.fileinput-new Selecione o Arquivo
%span.fileinput-exists Change
= f.file_field :images["#{i}"], multiple: true, limit: 4
= f.hidden_field :images_cache
%a.btn.btn-default.fileinput-exists{"data-dismiss" => "fileinput", :href => "#"} Remove
我想要:
一个。显示5个输入,以便用户可以选择每个图像并查看预览并使用Jasny的插件控件删除
OR
湾显示一个按钮,为用户尝试通过多项选择上传的每个文件生成5个预览。
'a'的问题是我需要创建5个f.input:images,并且在提交表单时不起作用。
'b'的问题在于它只显示第一张图像的预览,并且只允许控件在第一张图像上工作。
我暂时无法更改Carrierwave的实现,因此我需要使用该配置。我无法实现新模型AdImages来使用常规的CarrierWave上传。
有什么想法吗?我接受其他插件的建议或其他方式来显示预览USING CarrierWave的内置乘法上传功能。
编辑:对于那些不知道的人,CarrierWave在数据库中创建一个JSON列来存储图像文件路径。这就是我尝试在表单中手动插入:image [1]的原因。