Обновление хэша - PullRequest
       6

Обновление хэша

0 голосов
/ 21 июля 2009

Итак, у меня есть этот хэш, и у меня есть цикл. Когда цикл обнаруживает, что хеш уже имеет значение vendor = "нечто" - а значением цикла является "что-то" - я хочу, чтобы он просто перешел к хешу и обновил некоторые значения (цена, посещения).

Чтобы упростить это, в основном у меня есть массив хэшей, и когда я обнаружил, что у меня уже есть хэш с определенным значением поставщика, я хочу обновить хеш (изменить только цену и посещения).

Для справки, мой объект catlists выглядит примерно так - @catLists = {[1] => {: vendor,: price,: посещения,: месяц,: тип}, [2] => {: vendor ,: цена,: посещения,: месяц,: тип}, [3] => {: поставщик,: цена,: посещения,: месяц,: тип} и т. д.}

@income.each do |query|
            queriedmonth = Date::MONTHNAMES[query.postdate.month]
            thevendor = query.detail.capitalize
            theprice = query.amount
            numvisits = 1 #change this later
            hit = "no"

            @catLists.each do |item|
                if (item.has_value?(thevendor))
                    hit = "yes"
                    //So here I want to update the hash in my catLists array.
                end
            end
            if (hit=="no")
                vendorlist << thevendor
                @catList = {:vendor => thevendor, :price => theprice, :visits => numvisits, :month =>queriedmonth, :type=> "income"}
                #Push onto our array
                @catLists << @catList
            end


        end

Как бы я поступил так?

Спасибо за помощь, извините за сложность этой проблемы. Это странно, я не мог найти хороший способ сделать это.

1 Ответ

2 голосов
/ 21 июля 2009

Почему это не работает, когда вы нашли хит?

@catLists.each do |item|
  if (item.has_value?(thevendor)) 
    hit = "yes"
    item[:price] = theprice
    item[:visits] = numvisits
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...