Ruby on rails 如何通过数组获得唯一的元素并在RubyonRails中对它们进行分组
我有个问题。下面的代码是ruby在rails中的视图代码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|
<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>