首页 > 解决方案 > ActiveStorage 图像未显示在视图中

问题描述

我遵循了 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

标签: ruby-on-railsrails-activestorage

解决方案


您需要使用 activestorage表示方法。尝试这个:

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

推荐阅读