24

如果我在控制台中输入

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

我得到["Peter", "Mary", "Jane"]了,但我也想显示生日,那我该怎么做?我试过

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

但这不起作用。

4

3 回答 3

45

您可以使用备用块语法:

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

这将给出一个数组数组。

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

会给你一个字符串数组。你可以从那里做很多事情。

于 2010-07-14T08:52:35.530 回答
7

使用 ActiveRecord >= 4,您可以简单地使用:

u.friends.pluck(:username, :birthday)
于 2018-08-23T08:46:17.623 回答
6

尝试

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

&语法只是底层 Ruby 方法的简写。

于 2010-07-14T08:53:52.303 回答