将2个资源参数以相同的方式随机化为数组

时间:2014-05-28 00:08:37

标签: ruby-on-rails arrays random

我有一个名为stream的资源,它有参数video_idlength。每个video_id都有一个对应的length

我想创建两个数组,一个存储所有video_id,另一个存储所有length。我想随机化video_id数组,但对数组进行排序,使其索引对应于随机数组中正确的video_id

我可以使用

获取video_id数组
ids = Stream.friendly.find(params[:id]).videos.pluck(:video_id).shuffle

如何获得正确的length数组?

1 个答案:

答案 0 :(得分:0)

我不确定使用您已经概述的改组ID的方法来获取长度的最佳方法,但使用transpose将极大地帮助您。

ids, lengths = Stream.friendly.find(params[:id]).videos.pluck(:video_id, :length).shuffle.transpose

ids将完全按照之前的设置(当然,已经洗牌),lengths将设置为ids对应的length,按顺序排列