2017-01-05 2 views
-2

У меня есть следующий код:Как использовать переменную для построения хэш в Ruby,

temphash = {} 
temphash[:ScenarioCnt] = scn_Cnt 
temphash[:ScenarioNbr] = scn_Num 
for i in 0..$event_Action_cnt 
    temphash[:variablename] = value 
    p temphash 
end 
$cash_File.write(JSON.pretty_generate(temphash)) 

В for цикле я хочу, чтобы заменить имя ключа с именем переменной. Если я использую:

temphash[:variablename] = value 

Затем он печатает:

{"variablename": value} 

Я хочу, чтобы значение переменной на замененный с именем переменной.

Пожалуйста, дайте мне знать, как это можно сделать.

+1

Получить в привычка поддерживать правильный отступ. Ваше будущее будет благодарно вам. Кроме того, это помогает нам читать и понимать ваш код, пытаясь помочь вам. Чем быстрее мы сможем это сделать, тем быстрее мы сможем работать над решением и двигаться дальше, чтобы помочь другим. –

+1

Пожалуйста, прочитайте «[ask]» вместе со связанными страницами и «[mcve]». Ваш вопрос явно не задан. Возможно, пример вашего ожидаемого результата поможет? Кроме того, ваш код нуждается в помощи; Мы используем snake_case для имен переменных, а не смесь snake_case и camelCase. Не используйте '$' (globals), если вы не понимаете, почему их не следует использовать; Они являются слабым повязкой для плохого понимания переменных областей. Циклы 'for' не одобряются, потому что они пропускают промежуточную переменную; Вместо этого используйте 'event_action_cnt.times'. –

+0

Спасибо, что оценили все комментарии. Я не уверен, что все понимаю, но попытаюсь это понять. Я нахожусь в прошлом, поэтому потребуется некоторое время. – Anoop

ответ

0

Ваш вопрос не совсем ясен, но это звучит, как вы спрашиваете, как превратить переменную в символ для использования в качестве ключа пары хэш-ключ/значение:

foo = {} 
key = 'fred' 
foo[key.to_sym] = 'wilma' 
foo # => {:fred=>"wilma"} 
+0

Спасибо за ответ, да, это сработало. – Anoop

Смежные вопросы