Как сопоставить несколько атрибутов с ActiveRecord?

17

быстрый вопрос.

Если я наберу свою консоль

u = User.first
u.friends(&map:username)

I geht [«Петр», «Мария», «Джейн»]

Но я также хочу показать день рождения, так как я могу это сделать?

u.friends(&map:username, &map:birthday)

не работает заранее спасибо

    
задан tabaluga 14.07.2010 в 10:48
источник

2 ответа

33

Вы можете использовать синтаксис альтернативного блока:

u.friends.map{|f| [f.username, f.birthday]}

, который даст массив массивов.

u.friends.map{|f| "#{f.username} - #{f.birthday}"}

предоставит вам массив строк. Вы можете сделать немного оттуда.

    
ответ дан Geoff Lanotte 14.07.2010 в 10:52
4

Попробуйте

u.friends.map {|friend| [friend.username, friend.birthday]}

Синтаксис & является просто сокращением базового метода Ruby.

    
ответ дан Chowlett 14.07.2010 в 10:53