image_tag仅为每次迭代的第一个循环

时间:2016-03-06 02:06:59

标签: ruby-on-rails ruby

我正在尝试在每次迭代中仅向第一个循环添加单个image_tag

例如,我正在尝试显示3张图片。这是我目前的代码:

<% @album.each do |album|%>
  <% @image.each do |image| %>
    <% if album.id == image.album_id %>
      <a href="image.jpg"> <%= image_tag image_path %> </a>
    <% end %>
  <% end %>
<% end %>

如果我用{3}图像循环@image,我会得到这个输出:

<a href="image1.jpg"><img src="image_thumb.jpg"/></a>
<a href="image2.jpg"><img src="image_thumb.jpg"/></a>
<a href="image3.jpg"><img src="image_thumb.jpg"/></a>

我想要的是:

<a href="image1.jpg"><img src="image_thumb.jpg"/></a>
<a href="image2.jpg"></a>
<a href="image3.jpg"></a>

这样做的第一个图像拇指将作为专辑的封面。当您单击该链接时,它将显示一个灯箱库,其中循环显示该相册的所有图像。

我可以用css a:nth-​​child和display:none得到这个结果。但显示:即使它们没有显示任何内容,也无法下载所有缩略图。

1 个答案:

答案 0 :(得分:0)

如果相册和图像模型与以下关系相关联:

class Album
  has_many :images
end

class Image
  belongs_to :album
end

然后您可以使用以下内容来获得更好的性能:

<% @album.each do |album|%>
  <% album.images.each_with_index do |image, i| %>
    <a href="image.jpg"> <%= image_tag image_path if i==0 %> </a>
  <% end %>
<% end %>