2016-08-06 5 views
0

Im работает над реализацией поиска в моем проекте и добивается, чтобы поиск работал нормально. Теперь я пытаюсь внедрить систему фильтров и использовать aggs для отображения критериев фильтра. Массив, который возвращает aggs, немного сложный для меня и пытается выяснить, как циклически проходить через определенные части. Heres в Aggs возвращается:Как циклически перемещаться по многомерному массиву в рельсах

{ "методы" => { "doc_count_error_upper_bound" => 0, "sum_other_doc_count" => 0, => { "ключ" "ковши" [=> "Сковорода", "doc_count" => 1}, {"key" => "Searing", "doc_count" => 1}]}, "components" => {"doc_count_error_upper_bound" => 0, "sum_other_doc_count" => 0 , "buckets" => [{"key" => "Furikake, для обслуживания", "doc_count" => 1}, {"key" => "Кошерная соль и молотый черный перец", "doc_count" => 1}, {"key" => "Филе лосося", "doc_count" => 1}, {"key" => "avocado, diced", "doc_count" => 1}, {"key" => " приготовленный белый рис "," doc_count "=> 1}, {" key "=>" japanese oucumber "," doc_count "=> 1 }, {"key" => "teriyaki sauce", "doc_count" => 1}, {"key" => "до 8 scallions, тонко нарезанный", "doc_count" => 1}, {"key" => «растительное масло», «doc_count» => 1}]}, «cuisines» => {«doc_count_error_upper_bound» => 0, «sum_other_doc_count» => 0, «buckets» => [{«key» = > "азиатский", "doc_count" => 1}, { "ключ" => "японский", "doc_count" => 1}]}}

Как бы я написать сделать петлю, чтобы перебрать только часть кухни и вытащить отдельные имена и подсчеты из ковшей:

"cuisines" => {"doc_count_error_upper_bound" => 0, "sum_other_doc_count" => 0, "buckets" => [{"key" => "Asian", "doc_count" => 1}, {"key" => "Japanese", "doc_count" => 1}]}}

Поэтому в основном я хочу список, который будет выглядеть следующим образом: азиатских (1) Японский (1)

ответ

1

что у вас есть хэш с элементами массива. Это зависит от того, что вы именно вы хотите, но если предположить, вы назначили ему переменную my_hash, вы можете сделать это, например:

my_hash['cuisines']['buckets'].reduce('') do |r, h| 
    r += "#{h['key']} (#{h['doc_count']}) " 
end 
=> "Asian (1) Japanese (1) " 
+0

сладкий я думаю, что будет работать, спасибо – DRing

Смежные вопросы