2016-03-06 85 views
0

我试图在每次迭代中只添加一个image_tag到第一个循环。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 %> 

如果我通过@image环与3倍的图像,我会得到这样的输出:

<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> 

这样做是什么第一个图像大拇指将作为专辑封面。当您点击链接时,它会显示一个lightbox图库,该图库会循环显示该相册的所有图像。

我可以用CSS a:nth-​​child和display:none得到这个结果。但显示:即使没有显示任何内容,也不会下载所有的缩略图图像。

回答

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 %> 
+0

感谢这部作品和答案的其他问题,我下面问:)非常感谢你。 – Kris