我在week
循环中有两个循环,static_events, loop_events
创建按时间排序的链接。
问题是当第一个循环结束时,第二个循环在第一个循环之后创建元素,并且顺序中断。
<% @week.each do |day| %>
<% @static_events.each do |event| %>
<%= link_to event.start_time.strftime('%H:%M'), event_path(event.id) %>
<% end %>
<% @loop_events.each do |event| %>
<%= link_to event.start_time.strftime('%H:%M'), event_path(event.id) %>
<% end %>
<% end %>
结果大致如下:
01:00 # => @static_events => index 1
03:00 # => @static_events => index 2
04:00 # => @static_events => index 3
02:00 # => @loop_events => index 1
我需要这个结果:
01:00 # => @static_events => index 1
02:00 # => @loop_events => index 1
03:00 # => @static_events => index 2
04:00 # => @static_events => index 3
如何按时间对每个循环进行排序/排序,并实现上述结果?
答案 0 :(得分:2)
好吧,你可以合并它们(数组,而不是循环,当然)并按时间排序:
<% [@static_events, @loop_events].flatten.sort_by(&:start_time).each do |event| %>
<%= link_to event.start_time.strftime('%H:%M'), event_path(event.id) %>
<% end %>