我有来自
的回复 {"Dates"=>[[{"DateString"=>"2016-09-01"}, {"DateString"=>"2016-09-02"}, {"DateString"=>"2016-09-03"}, {"DateString"=>"2016-09-04"}, {"DateString"=>"2016-09-05"}, {"DateString"=>"2016-09-06"}, {"DateString"=>"2016-09-07"}, {"DateString"=>"2016-09-08"}], [{"MinPrice"=>3669.0, "QuoteDateTime"=>"2016-09-01T12:49:10"}, {"MinPrice"=>3216.0, "QuoteDateTime"=>"2016-09-01T15:53:40"}, {"MinPrice"=>2668.0, "QuoteDateTime"=>"2016-09-01T13:48:21"}]], "Places"=>[{"PlaceId"=>42850, "...}
这是我的代码
<% @result["Dates"].each do |f| %>
<% Array.wrap(f).each do |seg| %>
<%= seg['DateString'] %> - <%= seg['MinPrice'] %>
<br>
<% end %>
<% end %>
这就像包含哈希的数组数组,但当我尝试同时提取DateString
和MinPrice
时,我得到的结果是这样的
2016-09-01 -
2016-09-02 -
2016-09-03 -
2016-09-04 -
2016-09-05 -
2016-09-06 -
2016-09-07 -
2016-09-08 -
- 3669.0
- 3230.0
- 2809.0
- 2668.0
- 3216.0
- 2507.0
- 3216.0
- 2848.0
- 3216.0
我正在尝试的是这种安排
2016-09-01 - 3669.0
2016-09-02 - 3230.0
2016-09-03 - 2809.0
2016-09-04 - 2668.0
即,Datestring和Minprice一起
代码在哪里不正确?
另外,奇怪的是,如果代码重新排列如此
<%= seg['MinPrice'] %> - <%= seg['DateString'] %> <br>
它仍会显示如下
- 2016-09-01
- 2016-09-02
- 2016-09-03
.
.
.
3669.0 -
3230.0 -
2809.0 -
为什么会这样?
答案 0 :(得分:1)
这对你有用吗?
<% @result["Dates"][0].zip(@result["Dates"][1]).each do |f,a| %>
<%= "#{f['DateString']} - #{a['MinPrice']}" if f && a %>
<br>
<% end %>
它远非漂亮,但它可能是一个良好的开端。