我尝试按字母顺序排序ActiveRecord查询,不区分大小写,但字母优先于数字。
所以这个:
[
93124, my town,
springfield,
hooverville,
10075, upper east side,
Austin, TX
]
变为:
[
Austin, TX,
hooverville,
springfield,
10075, upper east side,
93124, my town
]
这真的让我不知所措。
答案 0 :(得分:0)
您可以使用substring
的{{1}}方法和postgresql
。
假设您的pattern
模型带有Location
列。列name
具有上述值。让我们订购它们。
name
这将首先按字符排序@locations = Location.select("name").order("SUBSTRING(name, '^[A-Za-z].*'), SUBSTRING(name, '^[0-9]+')::INTEGER")
列,然后按数字排序。
name
希望这会有所帮助。