使用方法参数

时间:2019-06-09 12:51:41

标签: ruby yaml ruby-on-rails-5.2

我加载了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]

1 个答案:

答案 0 :(得分:4)

您可以简单地使用Hash#dig

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