Rails 最后排序为 nil - SQLite3 错误

Rails ordering with nil last - SQLite3 error

目前,我正在尝试通过 limit 属性来订购我的 class。我希望值按升序排列,但所有 nil 值最后。

我尝试了几个不同的查询 ActiveRecord 查询以及跨基础 SQL 查询(它需要 SQL 灵活)。我试过几个:

self.order('ISNULL(limit), limit ASC')
self.order('CASE WHEN -limit DESC')
self.order('limit IS NULL, limit DESC')

但是我在 limit 周围不断收到错误消息,我是不是遗漏了什么?

SQLite3::SQLException: near "ISNULL": syntax error: SELECT "table".*      
FROM "table"  WHERE "table"."deleted_at" IS NULL ORDER BY ISNULL(limit),   
limit ASC

limit IS NULL就可以了,但是limit是sqlite3中的保留关键字,所以用反引号或者引号括起来:

self.order('`limit` IS NULL')

对于任何好奇的人,我使用了 self.order("-cutoff DESC")。简单易行。