2010-03-17 4 views
0

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

course.rb 

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

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

Course.current 

Я получаю ошибку:

PGError: ERROR: syntax error at or near "end" LINE 1: ... WHERE (start < '2010-03-17 14:03:24.995746' AND end > '201... ^: SELECT count(*) AS count_all FROM "courses" WHERE (start < '2010-03-17 14:03:24.995746' AND end > '2010-03-17 14:03:24.995748')

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

Дрю

ответ

1

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

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

+0

Это он! Я переименовал столбец с «end» на «finish», и теперь мы все настроены. Большое спасибо за помощь! –

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