¿Cómo puedo crear una matriz de todas las claves "name_printed" en el siguiente hash con una navegación segura nula?
{ "show_data_on_file": "Yes", "employees_names_printed_on_badges": [ { "name_printed": "John", "badge_id": 12160060 }, { "name_printed": "Tom", "badge_id": 12160080 } ] }Podrías usar Enumerable#pluck . En el caso de employees_names_printed_on_badges devuelva un valor falso, invoque pluck en una matriz vacía:
(data[:employees_names_printed_on_badges] || []).pluck(:name_printed) # ["John", "Tom"] O use & , que resultaría en nil si data[:employees_names_printed_on_badges]& es nil.
data[:employees_names_printed_on_badges]&.pluck(:name_printed)