Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用ActiveRecord映射多个属性?_Ruby On Rails_Ruby_Ruby On Rails 3_Ruby On Rails 4_Activerecord - Fatal编程技术网

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

Ruby on rails 如何使用ActiveRecord映射多个属性?,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-4,activerecord,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 4,Activerecord,如果我在控制台中键入 u = User.first u.friends(&map:username) 我得到了[“彼得”、“玛丽”、“简”]但是我也想展示生日,那我该怎么做呢?我试过了 u.friends(&map:username, &map:birthday) 但这不起作用。您可以使用备用块语法: u.friends.map{|f| [f.username, f.birthday]} 这将给出一个数组 u.friends.map{|f| "#{f.usernam

如果我在控制台中键入

u = User.first
u.friends(&map:username)
我得到了
[“彼得”、“玛丽”、“简”]
但是我也想展示生日,那我该怎么做呢?我试过了

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)