使用options_for_select对数组进行排序

时间:2014-05-07 14:27:32

标签: ruby-on-rails ruby arrays ruby-on-rails-3 sorting

我有如下数组:

[[value1, value2],[value1, value2], [value1, value2]]

如何在value1之前对此数组进行排序,而无需手动迭代数组。有没有内置的方法来做到这一点?我想简单地按字母排序(在这个数组中,我将user_name作为value1,user_id作为value2,并使用options_for_select rails方法来传递集合。

3 个答案:

答案 0 :(得分:5)

这个怎么样?只需使用Array#sort

即可
a = [["def",1],["abc", 2],["de", 5],["xyz", 10],["xxz", 12], ["ab", 2]]
## => [["def", 1], ["abc", 2], ["de", 5], ["xyz", 10], ["xxz", 12], ["ab", 2]] 
a.sort
## => [["ab", 2], ["abc", 2], ["de", 5], ["def", 1], ["xxz", 12], ["xyz", 10]] 

答案 1 :(得分:1)

尝试:

ary.sort_by {|ary| ary.first }

答案 2 :(得分:0)

另一种方式

a.sort_by { |x,y| x }