Если я наберу в своей консоли
u = User.first u.friends(&map:username)
я получу ["Peter", "Mary", "Jane"], но я также хочу показать день рождения, так как мне это сделать?Я пытался
["Peter", "Mary", "Jane"]
u.friends(&map:username, &map:birthday)
, но это не работает.
Вы можете использовать синтаксис альтернативного блока:
u.friends.map{|f| [f.username, f.birthday]}
, что даст массив массивов.
u.friends.map{|f| "#{f.username} - #{f.birthday}"}
даст вам массив строк. Оттуда можно сделать совсем немного.
Попробуйте
u.friends.map {|friend| [friend.username, friend.birthday]}
Синтаксис & является просто сокращением для основного метода Ruby.
&
С ActiveRecord> = 4 вы можете просто использовать:
u.friends.pluck(:username, :birthday)