好的,首先您需要获取所有犯罪的清单,无论犯罪头目不是结构。
一种方法是通过以下关系在类别级别添加与犯罪的crimeheaders
关系:
class Category
has_many :crimeheaders
has_many :crimes, through: :crimeheaders # this is what you add
...
end
一旦你有了这个,你就可以循环遍历一个类别中的所有犯罪,每批 10 个。
<% category.crimes.each_slice(10) do | batch | %>
<ul>
<% batch.each do |crime| %>
<li><%= crime.name %></li>
<% end %>
</ul>
<% end %>
这将获得该类别的所有罪行,然后一次给你 10 个切片以显示在列表中。
现在,如果你想变得更聪明,你实际上可以分批从数据库中检索 10 个。可能不值得,但这是一个想法:
<% Crime.where(category_id: 123).find_in_batches( batch_size: 10 ) do | batch | %>
<ul>
<% batch.each do |crime| %>
<li><%= crime.name %></li>
<% end %>
</ul>
<% end %>