0

我有一个评估标准模型,它有一个包含字符串值的 :label 字段,例如

//P1
//P2
//P3
//P4
//M1
//M2
//M3
//M4
//D1
//D2
//D3
//D4
//etc.

我想按此字段对查询进行排序,但首先查看数字,然后按每个数字的 P、M、D 顺序查看,结果是:

//P1
//M1
//D1
//P2
//M2
//D2
//P3
//M3
//D3
//P4
//M4
//D4
//etc.

我怎么能做到这一点?

4

1 回答 1

0

尝试这个:

sort_order = "PMD"

%w(//P1 //P2 //P3 //P4 //M1 //M2 //M3 //M4 //D1 //D2 //D3 //D4 ).sort_by do  |str| 
  str.gsub(/^.{3}/, '') + sort_order.index(str[2]).to_s
end
于 2012-06-26T01:15:57.133 回答