Поиск в подхеше с помощью Ruby on Rails - PullRequest
0 голосов
/ 17 февраля 2010

У меня есть хэш хэшей, например:

Parameters: {"order"=>{"items_attributes"=>{"0"=>{"product_name"=>"FOOBAR"}}}}

Учитывая, что глубина и имена ключей могут измениться, мне нужно иметь возможность извлечь значение 'product_name' (в этом примере "FOOBAR") с помощью какого-либо метода поиска или выбора, но я не могу понять это.

Дополнительным осложнением является то, что Params является (я думаю) HashWithIndifferentAccess

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 17 февраля 2010

Это то, что вы имеете в виду?

if params.has_key?("order") and params["order"].has_key?("items_attributes") then
    o = params["order"]["items_attributes"]
    o.each do |k, v|
        # k is the key of this inner hash, ie "0" in your example
        if v.has_key?("product_name") then
            # Obviously you'll want to stuff this in an array or something, not print it
            print v["product_name"] 
        end
    end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...