我正在Rails 5上构建一个小型CMS,以管理我作为图画书插图画家的在线作品集。
我正在使用Active Storage上载和显示图像,但是尽管上载部分工作正常,但在显示图像时仍然有些麻烦。
在我的数据库中,有一个名为Works
的表(显然代表我正在研究的书),每本书都有一个封面插图和各种插图。
在我的Work
模型中,我定义了关系as the Active Storage documentation suggests:
class Work < ApplicationRecord
:has_many_attached :illustrations
end
在我的控制器中,我以这种方式使用with_attached_illustrations方法:
def show
@project = Work.with_attached_illustrations.find(params[:id])
end
在我看来,我正在这样做:
<% if @project.illustrations.attached? %>
<%= @project.illustrations.each do |illustration| %>
<%= image_tag(illustration, :class => "illustrations") %>
<% end %>
<% end %>
这是浏览器,这是输出:
<img class="illustrations" src="http://localhost:3000/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBDdz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--6766bc0bb57edf83ed29796e499d453019f10f3d/%C2%A901.jpg">
[#<ActiveStorage::Attachment id: 6, name: "illustrations", record_type: "Work", record_id: 9, blob_id: 6, created_at: "2019-07-17 01:55:04">]
图像显示得很好,但是对于每个要加载的图像,我都用[#ActiveStorage::Attachment ...
表示这一行。
我应该怎么做才能摆脱它?
答案 0 :(得分:0)
您的代码中有这个
<%= @project.illustrations.each do |illustration| %>
摆脱前面的=号,它显示为:
<% @project.illustrations.each do |illustration| %>
答案 1 :(得分:0)
在循环中,第一行中有'='等号。删除它,您的循环将像这样。
<% @project.illustrations.each do |illustration| %>
<%= image_tag(illustration, :class => "illustrations") %>
<% end %>