我有三个数组,我想在HTML表格中垂直排列。每个数组的数据都将从上到下填入列中。
例如,我有三个数组:
fruit = ['pear', 'apple', 'orange']
veges = ['corn', 'radish', 'lettuce']
meat = ['beef', 'chicken', 'pork']
我希望桌子看起来像这样:
<table>
<tr>
<td>
pear
</td>
</tr>
<tr>
<td>
corn
</td>
</tr>
<tr>
<td>
beef
</td>
</tr>
<tr>
<td>
apple
</td>
</tr>
<tr>
<td>
radish
</td>
</tr>
<tr>
<td>
chicken
</td>
</tr>
<tr>
<td>
orange
</td>
</tr>
<tr>
<td>
lettuce
</td>
</tr>
<tr>
<td>
pork
</td>
</tr>
</table>
答案 0 :(得分:4)
我可能会使用Array#transpose
来重新排列内容以匹配<table>
的内容:
rows = [ fruit, veges, meat ].transpose
现在rows
将如下所示:
[
["pear", "corn", "beef"],
["apple", "radish", "chicken"],
["orange", "lettuce", "pork"]
]
生成表格只需迭代rows
:
%table
- rows.each do |row|
%tr
- row.each do |food|
%td= food
答案 1 :(得分:1)
查看此网站:Generate vertically-ordered HTML table in Ruby
以下是相关代码(此示例中的实例变量仅用于识别控制列数和行数的内容):
<table>
<tbody>
<% 0.upto(@rows_per_column-1).each do |row| %>
<tr>
<% 0.upto(@columns-1).each do |column| %>
<% index = row + (column * @rows_per_column) %>
<td><%= index %></td>
<% end %>
</tr>
<% end %>
</tbody>
</table>