我有一个现有的 activerecord 数组,通过以下方式获得:
@posts = Post.where(["created_at > ?", n_days.days.ago])
我想根据需要从多列实时计算的值来订购这个数组:
posts_array = posts.map { |p| [p.id, f(t, p.x,p.y)] }
这给出了一个类似 的数组[[1,20],[2,11],[3,14], ...],然后我根据要给出的函数值对其进行排序[[1,20],[3,14],[2,11],...],然后最终得到order_array我想要的[1,3,2,...]:
@posts然后基于新的重新排序原始数组的最佳方法是什么order_array [1,3,2,...]?如果可能,我不想再次接触数据库,因为信息已经包含在@posts数组中。
有没有一种简单的方法可以做到这一点?