0

我正在尝试从以下(简化)表中获取有序的结果列表:

create_table "evaluations", :force => true do |t|
  t.datetime "completed_at"
  t.datetime "created_at",          :null => false
end

如果设置(非空),我想按completed_at(DESC)排序。completed_at如果completed_at为空,我想按created_at(DESC)排序。

有没有办法通过模型用 Rails 3 做到这一点?

我在本地机器上使用 sqlite,但在服务器上使用 pg(我将很快在两者上切换到 pg。)

4

1 回答 1

0

我找到了我自己问题的答案,但我不确定它是否是最优雅的 Rails 3。如果有更好的方法很高兴!

Evaluations.order("CASE WHEN completed_at IS NULL OR THEN created_at ELSE completed_at END DESC")
于 2013-02-26T00:57:09.530 回答