【问题标题】:in ruby, how do you make this nested hash work?在 ruby​​ 中,你如何使这个嵌套的哈希工作?
【发布时间】:2010-05-01 10:21:36
【问题描述】:

这会产生一个错误:

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

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

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

提前致谢

【问题讨论】:

  • 这是一个非常糟糕的问题。

标签: ruby-on-rails ruby hash arrays


【解决方案1】:

你可以给它赋值 nil。

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-16
      • 1970-01-01
      • 2014-12-06
      • 2020-07-02
      • 2020-02-14
      相关资源
      最近更新 更多