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

时间:2016-10-21 15:45:38

标签: ruby-on-rails postgresql sorting rails-activerecord rails-postgresql

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

现在我必须使用

按价格功能进行排序
MyModel.order('price DESC')

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

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

修改

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

1 个答案:

答案 0 :(得分:9)

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

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

请考虑此answer以使其快速运行。