Ruby on rails:将散列中的所有特定键值存储到数组中

Ruby on rails: store all specific key values from a hash into an array

我如何创建一个包含所有“name_printed”键的数组,在以下散列中没有安全导航?

 {
  "show_data_on_file": "Yes",
  "employees_names_printed_on_badges": [
    {
      "name_printed": "John",
      "badge_id": 12160060
    },
    {
      "name_printed": "Tom",
      "badge_id": 12160080
    }
  ]
}

您可以使用 Enumerable#pluck。如果 employees_names_printed_on_badges returns 是一个虚假值,您可以在空数组上调用 pluck

(data[:employees_names_printed_on_badges] || []).pluck(:name_printed)
# ["John", "Tom"]

或使用 &,如果 data[:employees_names_printed_on_badges]& 为 nil,则结果为 nil。

data[:employees_names_printed_on_badges]&.pluck(:name_printed)