Ответ 1
Используйте метод map
:
Возвращает новый массив с результатами выполнения блока один раз для каждого элемента в перечислении.
def recruits_names
self.referrals.map { |r| r.display_name }
end
[Обновить] Как указано Сталеном в комментариях, этот пример можно сократить еще до:
def recruits_names
self.referrals.map(&:display_name)
end
Для любопытных это потому, что &
вызывает to_proc
для объекта, следующего за ним (при использовании в вызове метода), и Symbol
реализует to_proc
, чтобы вернуть Proc
, который выполняет указанный метод по символу на каждое значение, полученное для блока (см. документация).