Проблема с синтаксисом PGError для named_scope

У меня есть следующий named_scope, который отлично работает в MySQL и sqlite, но не работает в Postgres:

course.rb

named_scope :current, :conditions => ['start < ? AND end > ? ', Time.now, Time.now], :order => 'start ASC'

Тогда я просто звоню:

Course.current

Я получаю сообщение об ошибке:

PGError: ОШИБКА: синтаксическая ошибка в «конце» или рядом с ним LINE 1: ... WHERE (start ‹ '2010-03-17 14:03:24.995746' AND end > '201... ^ : SELECT count(*) AS count_all ОТ "курсов" ГДЕ (начало ‹ '2010-03-17 14:03:24.995746' И конец > '2010-03-17 14:03:24.995748')

Мой google-fu подводит меня, поэтому я надеюсь, что переполнения стека не будет. Любые идеи о том, как сделать эту область видимости Postgres дружественной? Спасибо,

Нарисовалась


person Drew Banning    schedule 17.03.2010    source источник


Ответы (1)


END — это ключевое слово, вы должны использовать другое назовите или поместите его между двойными кавычками «конец».

Если вы используете двойные кавычки вокруг имени столбца и используете этот код также для MySQL, скажите MySQL принимать двойные кавычки в качестве идентификатора объекта, установив правильный РЕЖИМ SQL: ANSI_QUOTES

person Frank Heikens    schedule 17.03.2010
comment
Вот оно! Я переименовал столбец от начала до конца, и теперь все готово. Большое спасибо за помощь! - person Drew Banning; 18.03.2010