我在表中显示了来自数据库记录的一些属性(只有两个)。
这是有效的,但现在我想用4列“打破”我的桌子。
示例:
在
制造商 -------- 型号
苹果--------- iphone三星---- s3
motorola ---- razr i
在: 制造商 -------- 型号 ---- 制造商 -------- 型号
苹果--------- iphone ------------三星------ s3motorola ---- razr i
所以,而不是一个对象,我想得到两个。
但是,我发现我怎么能这样做。有什么建议吗?
现在,我的表是:
<l><b><%= t("reports.graphs.mobiles") %></b></l>
<table class="zebra-striped">
<thead>
<tr>
<th><%= t('labels.maker')%> / <%= t('labels.model')%></th>
<th><%= t('labels.distribution')%></th>
<th><%= t('labels.maker')%> / <%= t('labels.model')%></th>
<th><%= t('labels.distribution')%></th>
</tr>
<% makers_model.each do |maker_model| %>
<tr>
<td width="50%" ><%= maker_model[0] %></td>
<td><%= ((maker_model[1].to_f)/(makers_model.inject(0) { |sum, tuple| sum += tuple[1] }) * 100).round(2).to_s + "%" %></td>
<td width="50%" ><%= maker_model[0] %></td>
<td><%= ((maker_model[1].to_f)/(makers_model.inject(0) { |sum, tuple| sum += tuple[1] }) * 100).round(2).to_s + "%" %></td>
</tr>
<% end %>
谢谢,拜托,抱歉我的英文
答案 0 :(得分:1)
<% makers_model.each_slice(2) do |slice| %>
<tr>
<% slice.each do |maker_model| %>
<td width="50%" ><%= maker_model[0] %></td>
<td><%= ((maker_model[1].to_f)/(makers_model.inject(0) { |sum, tuple| sum += tuple[1] }) * 100).round(2).to_s + "%" %></td>
<% end %>
</tr>
<% end %>
每个切片会将它们分成您指定的任何数字的部分。因此,如果我理解你想要的东西,你可以将它们分成2组,然后在表格中的每一行迭代该组