Как в Rails получить массив из дат с определенными значениями?
Несколько дней уже бьюсь над задачей, а решить никак не могу.
Суть вопроса:
В наличии массив вида [{"yyyy-mm-dd": 2}, {"yyyy-mm-dd": 6}], то есть содержимым является набор хэшей, у которых даты в качестве ключей и числа в качестве значений.
Что я пытаюсь получить: массив, в котором перечислены все даты за прошедший год (1.year.ago..Date.today) в качестве ключей с значениями из первого массива.
То есть, скажем, первый массив у меня содержит такие данные: "2014-05-31": 3, "2014-06-01": 5
А второй массив имеет в себе 365 хэшей, ключами в которых являются даты каждого дня в году. Значения подставляются из первого массива и в итоге я должен получить массив вида
"2014-05-29": 0, "2014-05-30": 0, "2014-05-31": 3, "2014-06-01": 5, "2014-06-02": 0
Жирным выделены данные первого массива, подставленные во второй.
Подскажите, пожалуйста, как мне сделать подобное? Я пытался прогонять через if-elsif-else, вложенный в другой if-elsif-else, но получаю в итоге массив дат, в котором записано только последнее значение.
Надеюсь, объяснил достаточно понятно, если нет, постараюсь уточнить, только спросите.
сумбурно, распишите, что на вход подается, и что на выходе ожидается, с сохранением типов, прим. вход [{a4:1}, {a55:2}] [{a1:x, a2:x ...a365:x }], x любое число, на выходе что ожидается?
Вот примерно что нужно получить: joxi.ru/lpOMU_3JTJAiY5gcp5w
ключи хэшей - даты в формате string, значения хэшей - числа, в формате integer соответственно.
Либо вот еще более страшный код, сразу получите нужный массив
b.each {|c| c[c.keys.first] = a.select {|q| q.keys.first == c.keys.first}.first[c.keys.first] if a.map {|s| s.keys.first}.include?(c.keys.first)}