使用Ruby on Rails在subhash中搜索

时间:2010-02-17 06:22:52

标签: ruby-on-rails search hash

我有像哈希一样的哈希:

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

鉴于键的深度和名称可能会发生变化,我需要能够使用某种搜索或选择方法提取“product_name”的值(在此示例中为“FOOBAR”),但我似乎无法搞清楚。

更复杂的是,Params(我认为)是HashWithIndifferentAccess

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这是你的意思吗?

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