请求活动存储图像仅显示一个而不是所有图像

时间:2019-03-22 16:30:24

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

作为Rookie Rails,我可以将模型用作has_many_attached :images

来将所有图像显示在html.erb上。

但是我尝试了很多类似下面的代码的方式

<div class="row">
  <div class="col-md-12">
      <% if @tool.images.attached? %>
            <% @tool.images.each do |image| %>
                <div class="img-fluid <%= 'active' if image.id == @images[0].id %>">
                  <%= link_to image_tag(image), image %>
                </div>
            <% end %>
        <% end %>
    </div>
</div>

但我尝试修复此问题时未显示一幅图像,而仅显示了几幅图像

image.id == @images[0].id

此代码不显示一张图片,您知道我在哪里可以使用此代码,因为我已经尝试了很多方法但都失败了

如果我使用此代码

<!-- Image -->
<div class="row">
  <div class="col-md-12">
    <% if @tool.images.attached? %>
        <% @tool.images.each do |image| %>
            <%= link_to image_tag(image, class:"tools-gallery"), image %>
        <% end %>
    <% end %>
  </div>
</div>
<br/>

它显示正常并且能够显示

enter image description here

但是我不希望有两张或更多图片,对于画廊来说还可以,但由于需要显示一张图片,因此不需要此页面。

和controller.rb

  def show
    @images = @tool.images
  end

1 个答案:

答案 0 :(得分:2)

<div class="row">
  <div class="col-md-12">
    <%= image_tag @tool.images.first if @tool.images.attached? %>
  </div>
</div>