Ruby on rails 如何通过数组获得唯一的元素并在RubyonRails中对它们进行分组

Ruby on rails 如何通过数组获得唯一的元素并在RubyonRails中对它们进行分组,ruby-on-rails,arrays,iteration,grouping,Ruby On Rails,Arrays,Iteration,Grouping,我有个问题。下面的代码是ruby在rails中的视图代码 <table > <tr> <th>Url</th> <th>Tags</th> </tr> <% @array_bookmark = @bookmark.class == Array ? @bookmark : [@bookmark] %> <% Array(@bookmark).each do |book|

我有个问题。下面的代码是ruby在rails中的视图代码

<table >
<tr>
    <th>Url</th>
    <th>Tags</th>
</tr>   
 <% @array_bookmark = @bookmark.class == Array ? @bookmark : [@bookmark] %> 
 <% Array(@bookmark).each do |book| %>
 <tr>
 <td><%= book.url %></td>
 <td><%= book.tags %></td>
 </tr>
 <% end %>
 </table>
但是,我想把它作为

  Url                   Tags
 www.mrabhiram.tumblr.com   abhi,blog
 google.com                 google,blog
有人能给我提供解决方案吗?它应该足够通用,可以遍历数组

提前谢谢。


<% Array(@bookmark).uniq.each do |book| %>
 <tr>
 <td><%= book.url %></td>
   <td><%= book.tags %></td>
 </tr>
<% end %>
以上操作将起作用。


<% Array(@bookmark).group_by {|b| b.url}.each do |url, books| %>
  <tr>
    <td><%= url %></td>
    <td><%= books.map {|b| b.tags}.flatten.uniq.join(" ") %></td>
  </tr>
<% end %>
以上操作将起作用。


<% Array(@bookmark).group_by {|b| b.url}.each do |url, books| %>
  <tr>
    <td><%= url %></td>
    <td><%= books.map {|b| b.tags}.flatten.uniq.join(" ") %></td>
  </tr>
<% end %>

使用group\u by语句

upd


使用group\u by语句

upd



“标签”将是一组书籍。逻辑正确。得到分组。但是有不同的元素。不管怎样我都能得到。看看上面的答案,“标签”是一组书,逻辑是正确的。得到分组。但是有不同的元素。不管怎样我都能得到。看看上面的答案。
 <% Array(@bookmark).group_by(&:url).each do |url, books| %>
 <tr>
 <td><%= url %></td>
 <td><%= books.map(&:tags).flatten.join(',') %></td>
 </tr>