0

問題があります。以下のコードは、Rails での ruby​​ のビュー コードです。

<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
 www.mrabhiram.tumblr.com   blog
 google.com                 google
 google.com                 blog

しかし、私はそれを

  Url                   Tags
 www.mrabhiram.tumblr.com   abhi,blog
 google.com                 google,blog

誰でも私に解決策を提供できますか? 配列を反復処理するのに十分な汎用性が必要です。

前もって感謝します。

4

3 に答える 3

2
<% 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 %>
于 2012-12-13T12:11:32.337 に答える
1

group_by ステートメントを使用する

更新

 <% Array(@bookmark).group_by(&:url).each do |url, books| %>
 <tr>
 <td><%= url %></td>
 <td><%= books.map(&:tags).flatten.join(',') %></td>
 </tr>
于 2012-12-13T12:12:09.133 に答える
0
<% Array(@bookmark).uniq.each do |book| %>
 <tr>
 <td><%= book.url %></td>
   <td><%= book.tags %></td>
 </tr>
<% end %>

上記が機能します。

于 2012-12-13T12:05:13.373 に答える