所以我有这张桌子:
<% @extra_dates.each do |ed| %>
<tr>
<td><%= ed.date %></td>
<td><%= ed.eventvenuename %></td>
<td><%= link_to "Buy Now", "/events/" + ed.permalink, class: "btn btn-info" %></td>
<% if ed.weburl1 || ed.weburl2 %>
<td>
<label class="annlabel" id="label">Cheapest</label>
</td>
<% end %>
</tr>
<% end %>
现在,如果最便宜的标签显示我希望它位于表格的顶行。
答案 0 :(得分:0)
您应该在控制器中对您的收藏进行排序:
@extra_dates = Event.where(eventname: @event.eventname).order("(COALESCE(weburl1, false) OR COALESCE(weburl2, false)) DESC")
这假设您正在使用PostgreSQL。
或
@extra_dates = Event.where(eventname: @event.eventname).sort_by {|e| (e.weburl1 ? 0 : 1) || (e.weburl2 ? 0 : 1)}
请记住,对于大型集合,第二种方法可能会慢得多。