deep_symbolize_keys!
преобразует строковые ключи в symbol
ключи. Это работает для хэшей и всех вложенных хешей. Тем не менее, у меня есть такие данные:
arr = [
{'name': 'pratha', 'email': 'p@g.com', 'sub': { 'id': 1 } },
{'name': 'john', 'email': 'c@d.com', 'sub': { 'id': 2 } }
]
arr.deep_symbolize_keys! # this is not working for array of hashes.
В этом случае хэши находятся в массиве. Так как я могу символизировать все сразу?
Использование Ruby 2.6.3
Я также где-то читал, что это deprecated
(, вероятно, на одном из форумов Rails ). Это правда? Если да, то как лучше всего конвертировать ключи в символы в моем случае?
В настоящее время используется это:
def process(emails)
blacklist = ["a", "john", "c"]
e = emails.map do |hash|
blacklist.include?(hash['name']) ? nil : hash.deep_symbolize_keys!
end
e
end