0

假设我有一个 Match 对象数组,每个对象都属于循环赛结构中的一轮......

火柴

Round     | Registrant_ID     |Registrant_ID_2    |Winner_id
1         |    1              |    2              |   2 
1         |    3              |    4              |   4
1         |    5              |    6              |   5
1         |    7              |    8              |   8
2         |    1              |    4              |   1
2         |    3              |    6              |   3
2         |    5              |    8              |   5
2         |    7              |    2              |   2
3         |    1              |    6              |   1
...

我想做的是按 Round 对所有匹配进行分组,然后循环遍历该轮并列出匹配项。

所需的输出将类似于...

 <h1>Round 1</h1>    
 <table>
 <thead>
  <tr>
   <th>Player 1</th>
   <th>Player 2</th>
   <th>Winner</th>
  </tr>
 </thead>
 <tbody>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>2</td>
  </tr>
  <tr>
    <td>3</td>
    <td>4</td>
    <td>4</td>
  </tr>
  <tr>
    <td>5</td>
    <td>6</td>
    <td>5</td>
  </tr>
  <tr>
    <td>7</td>
    <td>8</td>
    <td>8</td>
  </tr>
 </tbody>
</table>

我面临的问题是我不知道如何通过他们的 round 属性遍历匹配记录。我不确定是否可以使用in_groups_of之类的东西,因为参加一轮的玩家数量会有所不同,并不总是像这里看到的那样是 8 人。

到目前为止,这是我的代码,它简单地遍历所有记录并为每场比赛创建一个表格(我正在寻找单个回合的表格):

- @matches.each do |match|
  %h1= "Round #{match.round}"
  %table.table.table-bordered
    %thead
      %tr
        %th.span4 Player 1
        %th.span4 Player 2
        %th.span4 Winner
    %tbody
      %tr
        %td= match.register.user.username
        %td= match.register_2.user.username
        %td= match.winner.user.username unless match.winner.nil?

这是输出的样子,注意单独的表格用于单独的回合:

循环赛列表

4

1 回答 1

1

也许您的意思是按回合对比赛进行分组,如下所示:

- @matches.group_by(&:round).each do |round, matches|
  %h1= "Round #{round}"
  %table.table.table-bordered
    %thead
    %tr
      %th.span4 Player 1
      %th.span4 Player 2
      %th.span4 Winner
    %tbody
      - matches.each do |match|
        %tr
          %td= match.register.user.username
          %td= match.register_2.user.username
          %td= match.winner.user.username unless match.winner.nil?
于 2012-09-14T20:35:58.593 回答