Я пытаюсь сделать вариант сглаживания, например, при наличии:
{a: {b: 1}}
Я должен получить это
#=> {"a.b":1}
и т. Д.
Вот мой код:
require 'active_support'
require 'active_support/core_ext'
def pathifize(hash,results = {}, current_key='', b = ".")
hash.each do |new_key, value|
combined_key = [current_key,new_key].delete_if { |k| k.blank? }.join(b)
if value.is_a?(Hash)
pathifize(hash,results, combined_key, b)
else
results[combined_key] = value
end
end
end
У меня слишком большой уровень стека при попытке тестирования на Irb.