Я использую postgresql для базы данных в приложении Rails, которое отслеживает, когда происходят определенные события. Столбец базы данных для случая, когда происходит событие, называется when
(плохое имя, я знаю). Я могу это сделатьошибка синтаксиса при заказе по дате
@events = @group.events.order('created_at DESC')
Однако, когда я делаю это
@events = @group.events.order('when DESC')
Я получаю эту ошибку
PG::SyntaxError: ERROR: syntax error at or near "when"
LINE 1: ..."events" WHERE "events"."group_id" = $1 ORDER BY when DESC
^
: SELECT "events".* FROM "events" WHERE "events"."group_id" = $1 ORDER BY when DESC
when
запись имеет этот формат в базе данных
when: "2013-08-07"
Основано на что я вам сказал, вы можете увидеть причину, почему я не могу сделать это
@events = @group.events.order('when DESC')
Это важно для меня, чтобы иметь возможность заказать события по когда они проводятся. Поскольку порядок работы created_at работает, я не понимаю, почему возникает синтаксическая ошибка, когда я заменяю другой столбец.
WHEN - зарезервированное слово в SQL (предложение CASE WHEN), попробуйте использовать '.order ('events.when DESC')' (но я рекомендую вам изменить имя этого столбца) (может быть, 'start_time' вместо' when'?) – MrYoshiji
ok, спасибо за указатель – Leahcim