【发布时间】:2016-05-31 19:53:37
【问题描述】:
给定一个ActiveRecord::Relation 马拉松参与者的实例及其各自的完成时间。我如何确定任何两个或多个同时完成的参与者的位置(即第一、第二、第三)?例如:
@runners = Runners.where(maranthon_year_id: 2016, location: 'ask').order(finish_time: :asc)
通常,我会像这样遍历这个视图:
<% count = 0 %>
<% if @runners.each do |runner| %>
<tr>
<td><%= runner.id %></td>
<td><%= runner.name %></td>
<td><%= runner.finish_time %></td>
<td><%= (count += 1).ordinalize %></td>
</tr>
<% end.empty? %>
<tr>
<td colspan="4"> No Record Found</td>
</tr>
<% end %>
但如果两个或更多用户在准确的时间完成,则上述方法不起作用。
这是所需的输出:
请注意,Eyal 的位置是 4th(不是 3rd),因为有两个参与者排在第二位。
【问题讨论】:
标签: ruby-on-rails arrays activerecord