Ruby:如何在知道散列(数组)路径的情况下检索散列中的值?

Ruby:如何在知道散列(数组)路径的情况下检索散列中的值?,ruby,hash,traversal,Ruby,Hash,Traversal,我有这个杂烩 parentNode = { "titles" => { "primary" => "On Days Like These", "secondary" => "Matt Monro", "tertiary" => nil }, "synopses" => nil, "image_url" => "https://ichef.bbci.co.uk/images/ic/{recipe}/p01bqrb8.jp

我有这个杂烩

parentNode = {
  "titles" => { 
    "primary" => "On Days Like These",
    "secondary" => "Matt Monro",
    "tertiary" => nil
  },
  "synopses" => nil,
  "image_url" => "https://ichef.bbci.co.uk/images/ic/{recipe}/p01bqrb8.jpg",
  "duration" => nil
}
我知道我想要的值的“路径”:

path = ['titles','secondary']
如何检索相应的值,即Matt Monro

这很有效

puts parentNode['titles']['secondary']
但是我想要的是使用上面定义的path变量获取相同的数据。但是

  puts parentNode[path]
  puts parentNode.dig(path)
没有显示任何内容

我是ruby的新手,为什么这不起作用


谢谢你的Hash。dig接受可变数量的参数,要将数组转换成“可变参数”,你需要使用
*
()


你需要更仔细地阅读这里的文档。“dig”的参数不是数组。谢谢。当你来自另一种语言时,理解这些微妙之处并不总是那么容易。我的评论可能会被认为是一种批评。那不是我的意图。
parentNode.dig(*path)