请注意,我对rails非常陌生,所以请不要太讨厌我。
我希望对象有2个不同的表行条目。据我所知,代码看起来像这样。
<%= form_for(@object) do |f| %>
<table>
<tr>
<th> Col 1 </th>
<th> Col 2 </th>
<th> Col 3 </th>
<th> Col 4 </th>
<th> Col 5 </th>
<th> Col 6 </th>
<th> Col 7 </th>
</tr>
<tr>
<!-- entries 1-7 here --!>
</tr>
<tr>
<!-- entries 8-14 here --!>
</tr>
</table>
<% end %>
但据我所知,使用像<% fields_for(@object.entries) do |entry| %>
之类的东西迫使我立即通过所有这些,当我真的只想做上半场而不是下半场。我知道每个对象总共会有14个条目(每天1个,共2周),我希望看到它们分为2行(每周1行)。任何想法如何去做?
答案 0 :(得分:0)
您可以使用Ienumerable中的#each_slice
来迭代它们。类似的东西:
<%= form_for(@object) do |f| %>
<table>
<tr>
<th> Col 1 </th>
<th> Col 2 </th>
<th> Col 3 </th>
<th> Col 4 </th>
<th> Col 5 </th>
<th> Col 6 </th>
<th> Col 7 </th>
</tr>
<% @object.entries.each_slice(7) do |arr| %>
<% arr.each do |obj| %>
<tr>
<!-- entries n-n+7 here -->
</tr>
<% end %>
<% end %>
</table>
<% end %>
答案 1 :(得分:0)
fields_for接受数组,因此您应该只能传递所需的条目:
<% fields_for(@object.entries[0,7]) do |entry| %>
...
<% end %>
甚至将它与上面答案中的each_slice(或in_groups_of)结合起来:
<% @object.entries.each_slice(7) do |entries| %>
<% fields_for(entries) do |entry| %>
...
<% end %>
<% end %>