我们说我有一个名为surveys
的数组,由Survey.all
每个调查模型都有length
和cost
列。
首先在length
上,然后在cost
上对数组进行排序的最佳方法是什么。
我基本上想要做一些类似于Survey.all.order(length: :desc, cost: :asc)
的事情,但是在创建它之后在数组上。
答案 0 :(得分:2)
使用sort_by:
surveys.sort_by { |survey| [survey.length, survey.cost] }
如果你想控制asc vs desc,只需乘以-1:
surveys.sort_by { |survey| [-1 * survey.length, survey.cost] }
这适用于常规对象数组或ActiveRecord::Relation