Ruby on rails Rails按两列对数组排序
假设我有一个名为Ruby on rails Rails按两列对数组排序,ruby-on-rails,ruby,Ruby On Rails,Ruby,假设我有一个名为surveys的数组,它由Survey.all 每个调查模型都有一个长度和成本列 对数组进行排序的最佳方法是:首先按长度,然后按成本 我基本上想做一些类似于Survey.all.order(length::desc,cost::asc)的事情,但是在创建数组之后要在数组上执行。使用: 如果要控制asc与desc,只需乘以-1: surveys.sort_by { |survey| [-1 * survey.length, survey.cost] } 这应该适用于对象的常规数组
surveys
的数组,它由Survey.all
每个调查模型都有一个长度
和成本
列
对数组进行排序的最佳方法是:首先按长度
,然后按成本
我基本上想做一些类似于Survey.all.order(length::desc,cost::asc)的事情,但是在创建数组之后要在数组上执行。使用:
如果要控制asc与desc,只需乘以-1:
surveys.sort_by { |survey| [-1 * survey.length, survey.cost] }
这应该适用于对象的常规数组或ActiveRecord::Relation
使用:
如果要控制asc与desc,只需乘以-1:
surveys.sort_by { |survey| [-1 * survey.length, survey.cost] }
这应该适用于常规对象数组或
ActiveRecord::Relation
仅适用于调查
数组吗?此时,我将只能访问数组而不是调查。all(即,我实际上没有使用Survey.all来获取我的调查数组,但它更易于键入)应该可以工作,请尝试并让我知道,您也可以使用-Survey.length来描述。这是否仅适用于surveys
数组?此时,我将只能访问数组而不是Survey.all(即,我实际上没有使用Survey.all来获取我的调查数组,但它更容易键入),请尝试让我知道,也可以使用-Survey.length来描述。特别是重复的第二个答案。将是另一个副本。特别是第二个副本的答案。将是另一个副本。