如何使用ActiveRecord映射多个属性?

时间:2010-07-14 08:48:04

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 activerecord

如果我输入我的控制台

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

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

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

但这不起作用。

3 个答案:

答案 0 :(得分:38)

您可以使用备用块语法:

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

将提供一组数组。

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

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

答案 1 :(得分:4)

尝试

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

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

答案 2 :(得分:2)

使用ActiveRecord> = 4,您可以轻松使用:

u.friends.pluck(:username, :birthday)