0
从YAML文件
我读变量:如何在yaml文件中未声明从yaml文件读取的变量时引发异常?
begin
settings = YAML.load_file 'vm.yaml'
$var_a = settings['var_a']
$var_b = settings['var_b']
....
$var_z = settings['var_z']
rescue
puts "\nInvalid vm.yaml - please create or recreate vm.yaml from vm.yaml.example\n\n"
exit 1
end
puts $var_a
如果变量没有在vm.yaml文件中设置,将不会被检测到的误差,直到可变第一次被访问(例如,在puts $var_a
)。
最好是,如果在yaml文件中没有设置变量,我希望执行rescue块中的代码。
什么是最宝贵的方式来做到这一点?
@DaneAnderson - 谢谢!如何获取嵌套元素?例如。 'var_a_a = settings ['var_a'] ['a']' – 2014-11-04 21:36:54
鉴于您正在从yaml文件加载数据,您可能正在使用嵌套散列。开始时他们可能有点困难,但是在它的核心,这意味着对方法'settings.fetch('var_a')'的回应是一个散列,所以你可以继续使用[ ]或获取以获取返回的散列值,使其成为'settings.fetch('var_a')。fetch('a')' – 2014-11-04 21:40:07