【发布时间】:2013-01-15 23:57:40
【问题描述】:
我有一个字符串数组:
arr = ["2.1", "2.2", "2.2.1", "2.2.10", "2.2.2", "2.10"]
如果我使用arr.sort,结果是:
["2.1", "2.10", "2.2", "2.2.1", "2.2.10", "2.2.2"]
我需要:
["2.1", "2.2", "2.2.1", "2.2.2", "2.2.10", "2.10"]
如何正确排序?
问题 2:
如何对“2.1a”或“0.9b”等“alpha”或“beta”类型的字符进行排序
问题 3:
如果我有一个字段类型为字符串的活动记录数组,其中包含这样的数字,那么在模型中设置default_scope :order => ... 和sort_by{|a| a.split('.').map &:to_i } 是真的吗
或者
在类似的模型中创建我的方法
def my_sort
#sorting
end
为此:
Block.all.my_sort
【问题讨论】:
-
看起来你需要比较版本号,像这样stackoverflow.com/questions/2051229/…
-
是否有可能遇到任何“alpha”或“beta”类型的字符('2.1a' 或 '0.9b')?
-
是的,有机会。谢谢,我忘记了,我可以面对这个问题..