2016-08-27 9 views
-2

実行時にRubyハッシュに文字列の値を挿入したいと思います。私は読みやすくするため、関数の内部実行時にRubyハッシュに動的変数を追加する方法

def run_code(dynamic_variable) 
    trigger_template = { 
    :trigger => "#{dynamic_variable}" 
    } 
    .. #do something 
end 

それを置くことによってこれを行うことができますが、私は、関数の外のテンプレートを保存できるようにしたい - またはファイルからそれを読みます。私はERB経由でテンプレートを使ってみましたが、結果はハッシュではなく文字列として持っていました。私はdynaic_variableをグローバル変数にすることを避けたいので、定数としてtrigger_templateを格納すると、不足している変数について不平を言います。

宣言を実行時に延期する方法はありますか?実行時にハッシュを作成する最適な方法は何ですか? (ハッシュは最終的にJSONに変換されます)

答えて

2

ファイルからハッシュをロードして実行時に変更する方法の例を示します。 JSONまたはYAMLを使用して、ハッシュをシリアライズすることができます。たとえば、これはYAMLファイルです:

--- 

foo: "bar" 
bar: "foo" 

その後、私は

require 'yaml' 
hash = YAML.load("./my/file.yaml") 
hash["bar"] = "my new bar val" 

puts hash # print values 
# => { "foo" => "bar", "bar" => "my new bar val" } 
を言います
関連する問題