将集合打印为分组项目

时间:2016-08-14 20:42:59

标签: arrays ruby postgresql

到目前为止,我有一系列程序。一个程序有一个关联的帐户,并且(当前)六个不同的"类型"一个程序可以属于的帐户。

我需要能够转储所有程序,但是按照它们的帐户类型对它们进行分组。

喜欢的东西;

Alpha Type;
  - Programme One
  - Programme Two
  - Programme Three
Beta Type;
  - Programme Four
  - Programme Five
Delta Type;
  - Programme Six

到目前为止,我所管理的只是加入关联表并通过account_type执行订单:name

<% @programmes.each do |programme| %>
  <%= programme.account_type.name %>
<% end %>

哪个会以合理的顺序打印出这些程序,但我不知道如何进行分组。

我正在使用Postgres,如果这实际上更容易?我对Ruby和Postgres都很陌生

1 个答案:

答案 0 :(得分:0)

实际上似乎已经破解了这个。

我在Enumberable#group_by

上偶然发现了这篇文章

控制器中的最终代码如下所示;

@programmes = "get all programmes.."
@account_names = @programmes.group_by{|programme| programme.account.name}

在我看来;

<% @account_names.each_pair do |name, programmes| %>
  <hr>
  <strong><%= name %> programmes</strong>
  <br>
  <% programmes.each do |programme| %>
    <i><%= programme.name %></i><br>
  <% end %>
<% end %>

显着!