在ruby中设置哈希的默认值



我有一个嵌套的散列,比如:-

profile:
  status:                               
     nil: 3    
     x: 2   
  priority:
     x: 2
     y: 2

有没有一种方法可以设置状态的默认值,比如:-

profile:
  status:
    default:0
    nil: 3
    x:2

我不想要这样的解决方案或任何其他方法:-

h = Hash.new("Go Fish")
h.default = "Go fish"

因为我有一个yml文件,里面加载了configs哈希和其他映射哈希,比如上面的状态、优先级映射。因此,我的脚本从这些yml中提取配置以及其他哈希值并使用它们。现在,对于状态和优先级映射,如果在这个散列中找不到任何匹配的符号(即,如果不存在这样的映射),我需要这个状态和优先级子散列来返回一个值。我可以使用其他方法在代码中设置默认值。但关键是,我希望任何外行都能编辑这个yml,并能够运行我的脚本。因此,我希望在此处设置默认值。

由于似乎没有人能想出替代方案,所以现在我采用了这种方法。

 profile:
  status:
   default: 'x' number
   one: 1
   two: 2
   three: 3

在代码中

  profile['status'].default=priority['status']['default']

最新更新