我有一个使用 Carrierwave 内置多个文件上传器的应用程序。我正在尝试使用 Jasny 的 Bootstrap File Input 插件实现基本的图像预览和管理(只需要能够删除选定的图像),但我没有运气。
它适用于一个图像,但不适用于多个图像。
我的模型:
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 的插件控件查看预览和删除
或者
湾。显示一个按钮,为用户尝试上传的每个文件生成 5 个预览,并进行多项选择。
'a' 的问题是我需要创建 5 个 f.input :images 并且在提交表单时不起作用。
'b' 的问题在于它只显示第一张图像的预览,并且只允许控件在第一张图像上工作。
我目前无法更改 Carrierwave 的实现,因此我需要使用该配置。我无法实施新模型 AdImages 以使用常规 CarrierWave 上传。
有任何想法吗?我接受有关其他插件的建议或使用 CarrierWave 的内置多重上传功能显示预览的其他方式。
编辑:对于那些不知道的人,CarrierWave 在数据库中创建一个 JSON 列来存储图像文件路径。这就是我尝试在表单中手动插入 :image[1] 的原因。