У меня есть этот массивный вложенный Рубиновый хэш:доступа и стоимость обновления в хэше хэш рубинового
hash_filter = {
"m-ct-filter-bot"=>{
"parameters"=>{
"filter_action"=>"keep", "filter_key"=>"classification.identifier",
"filter_regex"=>nil, "filter_value"=>""
},
"group"=>"Expert", "name"=>"Filter", "module"=>"bots.experts.filter.expert",
"description"=>"modified by mf370"
},
"m-vision-filter-bot"=>{
"parameters"=>{
"filter_action"=>"keep", "filter_key"=>"classification.identifier",
"filter_regex"=>nil, "filter_value"=>""
},
"group"=>"Expert", "name"=>"Filter", "module"=>"bots.experts.filter.expert",
"description"=>"modified by mf370"
},
"m-tele-filter-bot"=>{
"parameters"=>{
"filter_action"=>"keep", "filter_key"=>"classification.identifier",
"filter_regex"=>nil, "filter_value"=>""
},
"group"=>"Expert", "name"=>"Filter", "module"=>"bots.experts.filter.expert",
"description"=>"modified by mf370"
}
}
И этот массив:
array_id = ["ct","vision","tele"]
Я пытаюсь обновить значение по ключевым "filter_value"
на каждый вложенный хеш со значениями array_id
. Для того чтобы иметь filter_value => ct
, filter_value => vision
, filter_value => tele
на соответствующем хэше.
У меня есть следующий код:
array_id.each do |id|
hash_filter.each_pair do |key, value|
value["parameters"]["filter_value"] = id
end
end
Однако, когда я запускаю этот код ключ filter_value
обновляются ВСЕГДА с последним значением array_id
, что означает, что все мои хэш будут иметь одинаковое значение filter_value => tele
,
Я не получаю никаких ошибок, это просто результат, которого я не ожидал. Можете ли вы, ребята, помочь мне? :)
спасибо !!
В будущем, пожалуйста, чистить ваши примеры до минимума, необходимые для определения вашей точки. Здесь вопрос был бы более ясным, если бы ваш пример хэша был, например, 'filter = {ct: {a: {b:" keep ", value:" "}, c:" Exp "}, vision: {a: {b: "keep", value: ""}, c: "Exp"}, tele: {a: {b: "keep", value: ""}, c: "Exp"}} '. –