Rails PostgreSQL 按字符串的整数值排序

Rails PostgreSQL sort by integer value of string

我在 Rails 应用程序上开发数据库架构时犯了一个战略性错误

现在我必须使用

实现按价格功能排序
MyModel.order('price DESC')

price是数据库中的字符串类型,导致50大于2000例如

有没有什么方法可以在不改变数据库结构的情况下实现这样的.order()

编辑:

我为价格栏切换到正确的类型(整数)。重构只花了我一个小时。

使用 PostgreSQL,您需要将字符串转换为 integer/float/decimal(在您决定 100% 不会将列类型更改为 正确一个):

MyModel.order('price::integer DESC')

考虑一下 answer 以使其运行更快。