在ruby中,如何使这个嵌套哈希工作?

时间:2010-05-01 10:21:36

标签: ruby-on-rails ruby hash arrays

这个会产生错误:

  @settings = { 
    :tab1 => {
      :name => {
        :required => true
      },
      :description
   }
  }

需要更改:descrpition to:description => {},但我没有任何值:描述所以我希望它保持原样(没有空=> {})

你能告诉我处理这种情况的最佳方法吗?

提前致谢

2 个答案:

答案 0 :(得分:6)

您可以为其指定nil。

  @settings = { 
    :tab1 => {
      :name => {
        :required => true
      },
      :description => nil
   }
  }

答案 1 :(得分:2)

在1.9之前的Ruby的哈希没有订购,甚至之后它有点笨拙,因为AFAIK你不能重新排序项目等,所以如果你还想保留元素的顺序,你可以考虑使用数组代替哈希:

@settings = {
  :tab1 => [
    {
      :field => :name,
      :required => true
    },
    {
      :field => :description
    }
  ] 
}