2017-02-24 14 views
-2

私は非常に新しいルビーです。私はルビーでこれを行うのと同じ方法があるかどうかを調べようとしています。私はどこで私たちはRubyでハッシュを作成できるかどうかを知りたいと思ったルビーでハッシュをオーバーライドする

default: 
    default: 
    A:     {read: 20, write: 10} 
    B:     {read: 30, write: 30} 
    C:     {read: 130, write: 10} 

override1: 
    placeholderA: 
    A:    {read: 10, write: 10} 

override2: 
    placeHolderB: 
    A:   {read: 10, write: 10} 
    B:   {read: 5, write: 5} 
    C:   {read: 5, write: 5} 
    D:   {read: 5, write: 5} 

:YMLの構文で

、我々はデフォルトのブロブを持っているために、この方法のような構文を使用して、特定の値でそれらを上書き存在する場合はオーバーライドの値を選択し、そうでない場合はデフォルト値を選択します。

ルビーマージマップがこの問題のアプローチであるかどうかはわかりません(私はまだルビーが新しく、オプションを探求しています)。

これは可能ですか?

答えて

0

マージを使用することができる:

options = {a:22} 
my_defaults = {a:1, b:123} 
my_defaults.merge(options) 
> {a:22, b:123} 

あなたはまた、他の方法でラウンドを動作し、いくつかのユースケースで

options = { a:2, b:321 } 
my_defaults = {a:1, c:3} 
options.reverse_merge(my_defaults) 
> {a:2, b:321, c:3} 
から意図を読み取ることが明確かもしれreverse_mergeを提供してレールを使用している場合、

http://apidock.com/rails/Hash/reverse_merge

関連する問題