【问题标题】:Active storage images not showing in activeadmin rails未在 activeadmin rails 中显示活动存储图像
【发布时间】:2019-06-23 12:06:10
【问题描述】:

使用活动存储来存储工作正常的图像。 我面临的问题是,当我 image_tag image 它显示 # 而不是图像。

这里是代码 产品.rb

has_many_attached :photos

在active_admin中

row "Images" do |p|
  p.photos.attachments.each do |photo|
    image_tag photo
  end
end

它不显示图像。它与 byebug 一起检查,网址也很好,但图像不显示,它显示了这个

只有这个有效

row "Images" do |p|
    image_tag p.photos.attachments.last
end

【问题讨论】:

    标签: ruby-on-rails ruby activeadmin rails-activestorage ruby-on-rails-5.2


    【解决方案1】:

    您需要使用url_for 来显示图像,如下所示

    row "Images" do |p|
      ul do
        p.photos.each do |photo|
          li do
            image_tag url_for(photo)
          end
        end
      end
    end
    

    【讨论】:

    • 我在ul & li 中更新了我的答案渲染图像,您可以尝试一次吗?它对我有用。
    • 但有什么区别?
    • 我不确定,但我认为当您遍历多个项目时,它会返回一个 # 数组。当你使用last 时,你直接用image_tag 渲染它。当您使用 ul & li 渲染多个项目时,会返回 html 并且它正在渲染它。我猜这会有所不同。
    【解决方案2】:

    以这种方式处理多个附件我没有遇到任何问题:

    if resource.photos.attached?
      row "Photos" do |resource|
        resource.photos.map{|photo| image_tag url_for photo}
      end
    end
    

    我不知道为什么@uday 会建议ulli。这似乎是一个“XY 解决方案”。

    【讨论】:

    • 我的意思是缺少 OP url_forulli 无法解决此问题。用url_for解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-04
    • 1970-01-01
    • 1970-01-01
    • 2022-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多