class Foo < ActiveRecord::Base
end
Foo.order( status: :on_hold ...?
如何订购,以便最后返回状态为Foos
的所有on_hold
?
RoR 4. Postgres。
答案 0 :(得分:2)
它会起作用:
Foo.order( "status = 'on_hold', status")
对Postgresql 布尔排序的快速测试:
app=# select * from test1;
a | b
---+---------
t | sic est
f | non est
(2 rows)
app=# select * from test1 order by a;
a | b
---+---------
f | non est
t | sic est
(2 rows)
app=#
正如 @muistooshort 所说,你可以这样做:
Foo.order("CASE status WHEN 'on_hold' THEN 1 ELSE 0 END, status")