Order numbers by value

I have this drop-down that get populated with "stuff." As I have recently found out, this "stuff" will either be all string values or all numerical values. I have the string values being ordered correctly but the numerical values are not. For example, this sequence of numbers 7007, 7100, 70100, 7009, 70200 get order as 7007, 7009, 70100, 70200, 7100. Is there a way to treat these strings as numbers instead of strings and order them as such?

You could convert them to integer, sort and convert back to string. There may well be a neater way as this is ruby, I don’t know.

Use a custom sort routine:

['10', '9', '8'].sort #=> ['10', '8', '9'] ['10', '9', '8'].sort_by{|x| x.to_i} #=> ['8', '9', '10'] ['10', '9', '8'].sort{|a, b| a.to_i <=> b.to_i} #=> ['8', '9', '10']

Does that help?

Best,