【问题标题】:Print out collection as grouped items将集合打印为分组项目
【发布时间】:2016-08-14 20:42:58
【问题描述】:

到目前为止,我收集了一些程序。一个程序有一个关联的帐户,并且(当前)有六种一个程序可以属于的不同“类型”帐户。

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

类似的东西;

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 都很陌生

【问题讨论】:

    标签: arrays ruby postgresql


    【解决方案1】:

    其实这个好像已经破解了。

    我在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 %>
    

    了不起!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-02
      • 1970-01-01
      • 1970-01-01
      • 2015-06-20
      • 1970-01-01
      • 2020-05-23
      • 1970-01-01
      相关资源
      最近更新 更多