例如,我有两个模型,比如客户端和评估,一个客户端有许多评估。
模型客户端
has_many :assessments模型评估
belongs_to :client例如:我有3个客户。
client1有3个评估,id为1、4、7
client2有3个评估,id为2,5,8
client3有2个评估,id为3,6
在查询中,我希望获得所有客户端的所有第一次评估,并继续进行第二次评估、第三次评估……
从主动关系到数组结果应该是
[[1, 2, 3], [4, 5, 6], [7, 8]]发布于 2016-09-23 16:56:04
您应该与map、zip和splat操作符一起使用includes和enjoy
array = Client.includes(:assessments).map{ |k| k.assesments.pluck(:id)}
first, *other = array
new_array = first.zip(*other).compact
#=>[[1, 2, 3], [4, 5, 6], [7, 8]]https://stackoverflow.com/questions/39655957
复制相似问题