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

Ser*_*koy 5 database sorting postgresql activerecord ruby-on-rails

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

现在我必须使用价格功能实现排序

MyModel.order('price DESC')
Run Code Online (Sandbox Code Playgroud)

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

有没有办法在.order()不改变数据库结构的情况下实现这些?

编辑:

我切换到价格列的正确类型(整数).我花了一个小时才进行重构.

And*_*eko 13

使用PostgreSQL,你需要将你的字符串转换为integer/ float/ decimal(在你决定100%不会去并改变列类型以纠正一个之后):

MyModel.order('price::integer DESC')
Run Code Online (Sandbox Code Playgroud)

考虑这个答案,使其快速运作.