Задать вопрос
@himik

Как установить значение элемента хеша по массиву ключей?

Имеется
hash = {:a => {:b => [{:c => old_val}]}}
keys = [:a, :b, 0, :c]
new_val = 10



В итоге нужно чтобы hash[:a][:b][0][:c] == new_val

Структура хеша и набор ключей могут произвольно меняться.
  • Вопрос задан
  • 2798 просмотров
Подписаться 2 Оценить Комментировать
Решение пользователя himik К ответам на вопрос (2)
@himik Автор вопроса
в общем, решение нашлось. всем спасибо )

a = {:a => {:b => [{:c => 1}]}}
b = [:a, :b, 0, :c]
d = b.pop
b.inject(a) {|s,k| s[k]}[d] = 20
Ответ написан