0

次の(簡略化された)表から結果の順序付きリストを取得しようとしています:

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

が設定されている場合(NULLではない)、 completed_at(DESC)で注文したい。が null のcompleted_at場合は、 (DESC) で並べ替えます。completed_atcreated_at

モデルを通じて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 に答える