Как мне отобразить операцию get в массиве хэшей? - PullRequest
0 голосов
/ 13 апреля 2020

Я использую Rails 5. У меня есть массив хэшей, каждый с ключом "id". Я хочу получить соответствующий массив только значений каждого идентификатора ha sh. Я попробовал это

[14] pry(main)> arr_of_hashes = [{:id => "abc"}, {:id => "cdef"}, {:id => "123"}]
=> [{:id=>"abc"}, {:id=>"cdef"}, {:id=>"123"}]
[15] pry(main)> arr_of_hashes.map(&:id)
NoMethodError: undefined method `id' for {:id=>"abc"}:Hash

, но, как вы можете видеть, он жалуется на "карту". Как правильно это сделать?

1 Ответ

0 голосов
/ 13 апреля 2020

Ты рядом. Не пинайте себя:

arr_of_hashes = [{:id => "abc"}, {:id => "cdef"}, {:id => "123"}]
ids = arr_of_hashes.map { |hash| hash[:id] } 
puts ids # ["abc", "cdef", "123"]

То, как вы использовали map, ожидало метода: map(&:method)

...