【问题标题】:ActiveStorage image not showing in the viewActiveStorage 图像未显示在视图中
【发布时间】:2021-03-26 01:56:45
【问题描述】:

我遵循了 Rails ActiveStorage 指南。我已成功将图像保存到本地数据库中的 blob 表中(附件表为空)。但我似乎无法在视图中显示它:

<%= url_for(@comment.images) if @comment.images %>

不管用也不行:

     <% @comments.each do |c| %>
        <%= c.body %>

        <%= url_for(c.images) if c.images %>

      <% end %>

显示评论的其他值有效,因此这是特定于图像的。我也尝试将 .url 添加到“图像”中。而且我尝试了 image_tag 而不是 url_for。在这两种情况下都没有运气。非常感谢任何帮助。

还有我的模特

  has_many_attached :images

应用程序.js

//= require activestorage


import Rails from "@rails/ujs"
import Turbolinks from "turbolinks"
import * as ActiveStorage from "@rails/activestorage"
import "channels"


Rails.start()
Turbolinks.start()
ActiveStorage.start()

控制器

    private
        def comment_params
            params.require(:comment).permit(:body, images: [])
    end

【问题讨论】:

  • images 真的是复数吗?如果是这样,您将需要遍历它们。
  • @RockwellRice 感谢您的评论。我试过&lt;% c.images.each do |i| %&gt; &lt;%= url_for(i) %&gt; &lt;% end %&gt; 但没用。还尝试了 image_tag 并且没有任何,只是“i”
  • 请在问题中添加更多详细信息。添加模型以及如何设置附件
  • @amazingbot 很好,但是如果它是复数,那么无论如何你都需要循环遍历它,你的解决方案会进入循环。
  • @DeepakMahakale 感谢您的评论。我已经更新了问题。

标签: ruby-on-rails rails-activestorage


【解决方案1】:

您需要使用 activestorage representation 方法。试试这个:

<% @comments.each do |c| %>
  <%= c.body %>
  <% c.images.each do |image| %>
    <%= image_tag image.representation(resize: '500x500') %>
  <% end %>
    
<% end %>

【讨论】:

  • 感谢您的回答。我刚才试过了。到目前为止一样。
猜你喜欢
  • 2021-06-23
  • 1970-01-01
  • 2020-03-23
  • 1970-01-01
  • 1970-01-01
  • 2021-06-18
  • 2019-02-07
  • 2017-02-17
  • 2021-05-30
相关资源
最近更新 更多