Rails:按视图中的列列出

时间:2014-05-09 15:23:59

标签: ruby-on-rails ruby

我有一个名为 imgs 的表格, album_id 列引用相册表。如何按album_id列出图像?像这样:

<ul>
    <p>Album1</p>
    <li>Image1 of Album1</li>
    <li>Image2 of Album1</li>
    <li>Image3 of Album1</li>
</ul>

<ul>
    <p>Album2</p>
    <li>Image1 of Album2</li>
    <li>Image2 of Album2</li>
    <li>Image3 of Album2</li>
</ul>

2 个答案:

答案 0 :(得分:0)

试试这个

<% @albums.each do |album| %>
<ul>
    <p><%= album.name %></p>
    <% album.imgs.each do |img| %>
      <li><%= image_tag img.image %></li>
    <% end %>
</ul>
<% end %>

答案 1 :(得分:0)

您可以执行以下操作:

<% grouped_images = @images.group_by(&:album) %>

<% grouped_images.each do |album, images| %>

  <ul>
    <p><%= album.name %></p>

    <% images.each do |image| %>
      <li><%= image.name %></li>
    <% end %>
  </ul>

<% end %>

此代码会根据他们的相册对您的@images进行分组。

我使用了group_by的简短版本,它通常需要一个块,长版本:

grouped_images = @images.group_by { |image| image.album }
# is exactly the same as
grouped_images = @images.group_by(&:album)