Ruby на рельсах объединяет ключи и значения

#ruby-on-rails #ruby

Вопрос:

У меня есть следующий массив:

 [  {  "name_printed_on_badge": "John",  "is_active": "Yes",  "is_valid": "Yes"  },  {  "name_printed_on_badge": "John",  "is_active": "Yes",  "is_valid": "No"  } ]  

Я хочу узнать, как объединить каждую пару ключей и значений и вернуть массив в формате вывода ниже:

 [  [  "name_printed_on_badge: John",  "is_active: Yes",  "is_valid: Yes"  ],  [  "name_printed_on_badge: John",  "is_active: Yes",  "is_valid: No"  ] ]  

Комментарии:

1. Для меня эти два массива выглядят одинаково. Каким вы хотите видеть конечный результат?

2. конечный результат не будет содержать хэшей в массиве, вместо этого это будет массив массивов

3. Спасибо. Я упустил эту тонкую разницу. Я предлагаю использовать map для решения этой проблемы.

Ответ №1:

 array = [  {  "name_printed_on_badge": "John",  "is_active": "Yes",  "is_valid": "Yes"  },  {  "name_printed_on_badge": "John",  "is_active": "Yes",  "is_valid": "No"  } ]  array.map do |hash|   hash.map { |key, value| "#{key}: #{value}" } end # [["name_printed_on_badge: John", "is_active: Yes", "is_valid: Yes"], ["name_printed_on_badge: John", "is_active: Yes", "is_valid: No"]]  

Комментарии:

1. спасибо, похоже, мне нужно потратить день или два на изучение хэшей и массивов в ruby