给出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
),因为两位参与者排在第二位。
答案 0 :(得分:0)
这应该可以解决问题:
<% count = 0 %>
<% @runners.each do |runner| %>
<td>runner.id</td>
<td>runner.name</td>
<td>runner.finish_time</td>
<% if runner.finish_time == @runners[count].finish_time %>
<td><%= count.ordinalize %></td>
<% count += 1 %>
<% else %>
<td><%= (count += 1).ordinalize %></td>
<% end %>
<% end %>
答案 1 :(得分:0)
@Ilya对结果分组有一个好主意,但该解决方案不会跳过示例中的第3位。我们需要另一个变量来跟踪地点。
@media screen and (max-width:1000px) {
p {font-size: 300%!important;}
}