2016-09-01 5 views
1

У меня есть этот ответ отRails извлечение данных странного поведения из массива из массива, содержащего Hash

{"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

Можете ли вы переформатировать код –

+0

Вы имеете в виду ответ API или код просмотра – arjun

ответ

1

Это работает для вас?

<% @result["Dates"][0].zip(@result["Dates"][1]).each do |f,a| %> 
    <%= "#{f['DateString']} - #{a['MinPrice']}" if f && a %> 
    <br> 
<% end %> 

Это далеко не красиво, но это может быть хорошим началом.

+0

Да, это работает! Любая ссылка в документах, где лучше сделать, как вы сказали, это не идеально? – arjun

+0

Рад, что это работает! Что касается кода, я имел в виду его только «далеко не красивым», потому что первая строка длинная и довольно трудная для чтения. Вторая строка сортирует описание того, что мы делаем с первой строкой, поэтому должно быть хорошо. Вы можете добавить комментарий, чтобы быть в безопасности! – NNFAK

+0

Это было полезно. Из того, что вы сделали, я смог найти информацию о 'transpose' и' each_with_index'. Полезно. Благодарю. – arjun