按以数字开头的字符串排序 - ActiveRecord

Ordering by String that starts with Number - ActiveRecord

我正在构建 Rails 应用程序并尝试按以数字开头的字符串列对数据库中的记录进行排序。
怎样才能先按号码下单?
我宁愿按 SQL 顺序排序,也不愿按 ruby 方法排序。有什么办法吗?

expected order
1.record1
2.record2
10.record10
present order
1.record1
10.record10
2.record2

您可以 order by field + 0field 的数据类型隐式更改为数字:

Model.order("field + 0 ASC")

# similar `string`.to_i in Ruby
# `1.record1`   => 1
# `10.record10` => 10