1

我有一个使用 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] 的原因。

4

0 回答 0