Printing a Hash of Arrays as HTML table by releu
Look how to do it in 2 lines of code.
We have a hash:
@hash = {
:foo => [1, 2],
:bar => [3, 4],
:baz => [5, 6]
}
We want to get this HTML:
<table>
<tr>
<th>foo</th>
<th>bar</th>
<th>baz</th>
</tr>
<tr>
<td>1</td>
<td>3</td>
<td>5</td>
</tr>
<tr>
<td>2</td>
<td>4</td>
<td>6</td>
</tr>
</table>
Lets do it:
<table>
<% @hash.keys.each do |key| %>
<th>key</th>
<% end %>
<% @hash.values.max_by(&:size).size.times do |i| %>
<tr>
<% @group.values.map { |a| a[i] }.each do |value| %>
<td><%= value %></td>
<% end %>
</tr>
<% end %>
</table>
Comments
No comments yet