Если есть два хэша с несколькими ключами:
я есть массив хэшей:
[{"Vegetable"=>10}, {"Vegetable"=>5}, {"Dry Goods"=>3>}, {"Dry Goods"=>2}]
Мне нужно использоватьinject
здесь я думаю, но я действительно боролся.
Я хочу новый хеш, который отражает сумму дубликатов предыдущего хеша:
[{"Vegetable"=>15}, {"Dry Goods"=>5}]
Я контролирую код, который выводит этот хеш, поэтому я могу изменить его при необходимости. Результатами были главным образом хэши, потому что это могло бы привести к вложению любого количества уровней в глубину, и тогда легко вызвать flatten в массиве, но не сгладить также ключи / значения хэша:
def recipe_pl(parent_percentage=nil)
ingredients.collect do |i|
recipe_total = i.recipe.recipeable.total_cost
recipe_percentage = i.ingredient_cost / recipe_total
if i.ingredientable.is_a?(Purchaseitem)
if parent_percentage.nil?
{i.ingredientable.plclass => recipe_percentage}
else
sub_percentage = recipe_percentage * parent_percentage
{i.ingredientable.plclass => sub_percentage}
end
else
i.ingredientable.recipe_pl(recipe_percentage)
end
end
end