使用方法参数引用 YAML 节点

Reference YAML Node using method parameter

我加载了一个 yaml,需要为其定义一个范围,以引用特定的节点。

myYaml = YAML.load_file('myfile.yml').with_indifferent_access

一般情况下我就可以了

myYaml[:first_node][:first_child][:second_child]

但是,我想将路径传递给一个方法来为我确定范围。我正在努力做这样的事情..

scope_path = [:first_node,:first_child,:second_child]

def scope(scope_path)
 myYAML[scope_path]
end

# 所以我需要代码将我的 scope_path 参数转换为

myYaml[:first_node][:first_child][:second_child]

你可以简单的使用Hash#dig:

myYaml.dig(:first_node, :first_child, :second_child)