在ruby中设置哈希的默认值

时间:2012-08-22 11:02:50

标签: ruby-on-rails ruby hash default-value

我有一个嵌套的哈希,如: -

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 hash和其他映射哈希,比如上面的状态,优先级映射。所以我的脚本从这些yml中提取配置以及其他哈希值并使用它们。现在对于状态和优先级映射,我需要这个状态和优先级subhash,如果它在这个哈希中找不到任何匹配的符号(即,如果不存在这样的映射),则返回一个值。我可以使用其他方法在代码中设置该默认值。但重点是我希望任何外行编辑这个yml并能够运行我的脚本。因此,我希望在此处设置默认值。

1 个答案:

答案 0 :(得分:2)

由于似乎没有人提出替代方案,现在我已采用这种方法。

 profile:
  status:
   default: 'x' number
   one: 1
   two: 2
   three: 3
代码中的

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