我有一个组织列表,按名称分组和显示,按字母顺序排列。我想在每个字母的4列中显示这些,即:
A
A... A... A... A...
A... A... A... A...
...
Z
Z... Z...
我使用了以下代码:
<% @organisations.keys.sort.each do |starting_letter| %>
<div class="page-chunk default">
<h6><%= starting_letter %></h6>
<% @organisations[starting_letter].each do |organisations| %>
<% organisations.in_groups_of(4).each do |column| %>
<div class="one_quarter">
<% column.each do |organisation| %>
<%= link_to organisation.name, organisation_path(organisation) %><br />
<% end %>
</div>
<% end %>
<% end %>
</div>
<% end %>
在控制器中:
@organisations = Organisation.all.group_by{ |org| org.name[0] }
但为#undefined method
@ groups [starting_letter] .in_groups_of(4).each do | organizations | for my troubles. If I change the code to
NilClass`错误获取then I get a
in_groups_of'。
我做错了什么,应该如何解决?
答案 0 :(得分:6)
试试organisations.in_groups_of(4, false)
如果没有false
,则会使用nil
s填写最后一个组中的所有空白点,这意味着它会尝试在name
上调用nil
。