【问题标题】:activeadmin carrierwave multiple input: preview existing pictureactiveadmin carrierwave 多输入:预览已有图片
【发布时间】:2016-05-24 14:10:47
【问题描述】:

我将本地carrierwave 多个上传器实现到activeadmin。 图像正确保存到数据库。而且我可以通过这种方式在 FORM 中预览现有图像以进行单个输入:

f.input :background, :as => :file, :hint => image_tag(f.object.background.url(:thumb)`)

但我无法在 FORM 中预览现有图像以进行多个输入:

f.input :images, as: :file, input_html: { multiple: true}, :hint => f.object.images.each {|i| image_tag(i.url(:thumb))}

而且它在网络浏览器中什么也不渲染。但是如果我把这段代码放到 content_tag 中:

f.input :images, as: :file, input_html: { multiple: true}, :hint => content_tag(:div, f.object.images.each {|i| image_tag(i.url(:thumb))})

它给了我类似的东西:

[#<ProductAdditionalImagesUploader:0x007f5f430339d8 @model=#<Basrelief id: 1,
title: "Барельеф", description: "Барельеф...",
price_m: #<BigDecimal:7f5f42042600,'0.1E4',9(18)>,
created_at: "2016-02-07 22:31:34", updated_at: "2016-02-12 23:42:02",
background: "Bar_8.jpg", images: ["1.jpg", "2.jpg"]>, @mounted_as=:images,
@storage=#<CarrierWave::Storage::File:0x007f5f43033938
@uploader=#<ProductAdditionalImagesUploader:0x007f5f430339d8...

我想说明,在 SHOW 中,我可以通过这种方式预览这些图像:

 row :images do
        ul do
          basrelief.images.each do |image|
            li do
              image_tag image.url(:thumb)
            end
          end
        end
      end

我做错了什么?也许还有其他方法。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 activeadmin carrierwave


    【解决方案1】:

    给你带来麻烦的不是multiple: true。这是您尝试将这些图像与.each 一起输出的方式。使用.map 然后将它们与&lt;br&gt;html_safe 加入字符串

    改变这个

    f.input :images, as: :file, input_html: { multiple: true}, :hint => f.object.images.each {|i| image_tag(i.url(:thumb))}
    

    到这里

    hint = f.object.images.map{|i| image_tag(i.url(:thumb)) }.join('<br>').html_safe
    f.input :images, as: :file, input_html: { multiple: true}, :hint => hint
    

    【讨论】:

    • 谢谢!作品!我花了很多时间上网但没有找到)
    • 我可以使用f.input :image, as: :file, hint: f.template.image_tag(f.object.image_url) 看到上传图像的预览,但是在编辑表单上显示一些垃圾文本,如#&lt;#&lt;Class:0x007f90d83502a8&gt;:0x007f90e37d5430&gt; 请帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-07
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    相关资源
    最近更新 更多