我正在尝试从以下(简化)表中获取有序的结果列表:
create_table "evaluations", :force => true do |t|
t.datetime "completed_at"
t.datetime "created_at", :null => false
end
如果completed_at
已设置(非空),我想按completed_at
(DESC)排序。如果completed_at
为空,我希望按created_at
(DESC)排序。
有没有办法通过模型使用Rails 3做到这一点?
我在我的本地机器上使用sqlite但在服务器上使用pg(我很快就会切换到pg。)
答案 0 :(得分:0)
我找到了自己问题的答案,但我不确定它是最优雅的Rails 3。如果有更好的方法,请高兴!
Evaluations.order("CASE WHEN completed_at IS NULL OR THEN created_at ELSE completed_at END DESC")