3

我有这个哈希

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']

但我想要的是使用上面定义的路径变量来获取相同的数据。

  puts parentNode[path]
  puts parentNode.dig(path)

不显示任何东西。

我是红宝石新手,为什么这不起作用?

谢谢

4

1 回答 1

4

Hash.dig接受可变数量的参数,将数组转换为您需要使用的“可变参数” *splat 运算符

parentNode.dig(*path)
于 2020-02-13T09:40:52.910 回答