【发布时间】:2014-07-23 15:00:26
【问题描述】:
我有一份Flights 出发和到达机场的列表。每个Flight 都有一个出发/到达时间。我想将航班列表显示为时间线,左边是出发,右边是到达,按小时分组,如下所示:
Departures | Arrivals
Hours 08 - 09
Flight 1, 08:15 | Flight ABC, 08:12
Flight 2, 08:21 | Flight XY, 08:36
Flight 05, 08:49 | Flight ABC, 08:38
Hours 09 - 10
Flight 1, 09:25 | Flight ABC, 09:55
Flight 2, 09:56 |
....
我正在创建这样的哈希:
@flights= {}
Flight.each do |t|
@flights[t_time] ||= []
t_time = t.departure_date.change(min: 0)
if t.departure
@flights[t_time][0] << t #departures
else
@flights[t_time][1] << t #arrivals
end
end
这似乎有效。但是我不知道如何在视图中解析这个结构以每次访问,以及之后两个数组中的每个对象。
【问题讨论】:
-
您没有将到达和离开时间存储在同一航班记录中吗?
-
不是同一个航班。它们是不同的航班,到达和离开。我只想根据出发/到达时间并排显示它们。
-
我不会撒谎的。看起来会很混乱。
-
但是我不知道如何解析视图中的这个结构每次访问,然后访问两个数组中的每个对象。 -> 再来一次?跨度>
-
我不知道如何从哈希中访问单个航班。我得到
undefined method []
标签: ruby-on-rails ruby arrays hash-of-hashes