Ответ 1
Если вы не возражаете против обезглавливания обезьян, вы можете уйти от себя:
arr = [{ id: 1, body: 'foo'}, { id: 2, body: 'bar' }, { id: 3, body: 'foobar' }]
class Array
def pluck(key)
map { |h| h[key] }
end
end
arr.pluck(:id)
=> [1, 2, 3]
arr.pluck(:body)
=> ["foo", "bar", "foobar"]
Кроме того, это выглядит как кто-то уже обобщил это для Enumerables, а кто-то еще для более общего решения.