2009-09-10 2 views
0

Это довольно тривиально, но мне не до конца доходит, что я еще не нашел ответа с помощью Google или этого форума. Но как я могу превратить это в одну строку? Не нужно объявлять комнаты массивом выше?создание одной строки рубинового массива и популяция

rooms = [] 
hwdata.availability.each {|room| rooms << room.name} 

ответ

7
rooms = hwdata.availability.collect {|room| room.name} 

Или в Ruby 1.9, еще более кратким:

rooms = hwdata.availability.collect &:name 
+0

это замечательно! – holden

0

Или вы можете использовать #Map также.

rooms = hwdata.availability.map {| номер | room.name}

+0

Дополнительная информация: 'map' - это еще одно имя для' collect'. Таким образом, вы действительно можете использовать либо. – Chuck

Смежные вопросы