私はハッシュを扱うためにevalを使用しています。この部分は動作します:リファレンスによるハッシュのRuby変更値
some_hash = {"a" => {"b" => "c"}}
target_hash = "some_hash"
target_key = "['a']"
my_value = eval(target_hash + target_key)
puts "my_value " + my_value.to_s
と版画:私は、evalのを使用して、値を変更する方法を
my_value {"b"=>"c"}
をするように、この内のハッシュ結果:
some_hash = {"a" => {"d" => "e"}}
おかげ
編集:
私は正しく説明しているとは思わない。私はハッシュを掘り下げなければならないが、実行時に設定された文字列を柔軟に処理する必要がある。その文字列は、some_hash['key_level_1']['key_level_2']['key_level_3']
を参照するとされている"['key_level_1']['key_level_2']['key_level_3']"
である可能性があります。
もう一度、その値を何かに設定する必要があります。それは理にかなっていますか?
は、ここでevalを、errはevil--使用* *ない考えてみましょう。一般的なケースでは、この問題に近づくための多数の「クリーンな方法」があります。 –
ハ、私は誰かがそれを言うだろうと知っていた。何かヒント? plsは、感謝の下、私のコメントを参照してください。 – dt1000
いいえ、真剣にも、これはひどいです。 "a"がうまくいくところでは[["a"]]を使う理由はありません。 _syntax_!をパラメータ化する必要はありません。 –