首先,一个警告:我是 Ruby 和 Rails 的新手。
我的模型中有一个字符串字段,它引用了我的客户端现有的离线命名方案,这些方案是用小数点分隔的整数。所以“1.1”和“5.10.1.5”等
我想使用 Rails 的默认范围排序,但仅按此字段进行正常排序会导致如下问题:
1 1.10 1.2 1.3
很明显,我希望 1.10 排在最后。谁能指出我正确的方向?
我正在使用 Rails 3.2.10 和 Postgres 9.1.4。
最佳答案
您真的不想在 ruby 中进行这种排序,因为您将失去链接作用域、对结果进行分页、正确使用 limit
等的能力。
这是 Postgres 特有的,但应该完全按照您的意愿进行。
default_scope order("string_to_array(num, '.', '')::int[]")
关于ruby-on-rails - 在 Rails 中对数字字符串进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15750722/