0

私は次のようなネストされたハッシュを持っています:-

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"

coz上記のステータスや優先度マッピングなどのconfigsハッシュやその他のマッピングハッシュがロードされたymlファイルがあります。したがって、私のスクリプトは、これらのymlから構成と他のハッシュ値を抽出して使用します。ここで、ステータスと優先度のマッピングについて、このハッシュ内に一致するシンボルが見つからない場合(つまり、そのようなマッピングが存在しない場合)に値を返すために、このステータスと優先度のサブハッシュが必要です。他の方法を使用して、コードでそのデフォルト値を設定できます。しかし、要点は、素人なら誰でもこのymlを編集して、スクリプトを実行できるようにすることです。したがって、ここでデフォルト値を設定したいと思います。

4

1 に答える 1

2

代替案を思い付く人はいないようですので、今のところ私はこの方法に頼っています。

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

コード内

  profile['status'].default=priority['status']['default']
于 2012-08-22T21:34:56.883 に答える