【发布时间】:2017-03-04 00:09:11
【问题描述】:
在我的 Rails 应用程序上开发数据库架构时,我犯了一个战略错误
现在我必须使用
实现按价格功能排序MyModel.order('price DESC')
price是数据库中的字符串类型,例如导致50大于2000
有没有办法在不改变数据库结构的情况下实现这样的.order()?
编辑:
我为价格列切换到正确的类型(整数)。重构只花了我一个小时。
【问题讨论】:
-
你使用的是哪个 rdbms?
-
我正在使用 PostgreSQL
-
我认为如果可能的话,最好将列类型从字符串迁移到浮点数。否则你应该投列:
ORDER BY price::float. -
是的,Oleksandr Avoyants 是对的,您真的应该只迁移数据库表以获得正确的值。如果你一直在寻找解决办法,你真的会阻碍自己。
标签: ruby-on-rails postgresql ruby-on-rails-4 activerecord ruby-on-rails-5