2015-04-09 3 views
0

В настоящее время я пытаюсь заказать мой класс атрибутом limit. Я хочу, чтобы значения были в порядке возрастания, но со всеми значениями nil.Заказ Rails с nil last - ошибка SQLite3

Я пробовал пару разных запросов. Запрос 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 

ответ

0

limit IS NULL будет делать это, но limit является зарезервированным keywork в sqlite3, так заключите его в обратных кавычках или кавычках:

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

Вложение в кавычки Спасибо большое! – jozwright

1

И для тех, кто любопытных, я использовал self.order("-cutoff DESC"). Это просто и выполняет свою работу.

Смежные вопросы