У меня установлена Rails 3.1 с postgres 8.4.Вот мои версии драгоценных камней:
activerecord (3.1.3)
activemodel (= 3.1.3)
activesupport (= 3.1.3)
arel (~> 2.2.1)
tzinfo (~> 0.3.29)
activerecord-jdbc-adapter (1.2.1)
activerecord-jdbcpostgresql-adapter (1.2.1)
activerecord-jdbc-adapter (~> 1.2.1)
jdbc-postgres (~> 9.0.0)
Теперь, когда я делаю этот запрос в моем контроллере:
@topics = Topic.find(:all, :conditions => ["\"ForumID\" in ?, @forum_ids]
Я получаю этоошибка:
ActiveRecord::JDBCError: ERROR: syntax error at or near "'abc123'"
Position: 62: SELECT "topic".* FROM "topic" WHERE ("ForumID" in 'abc123','1234')
Completed 500 Internal Server Error in 314ms
ActiveRecord::StatementInvalid (ActiveRecord::JDBCError: ERROR: syntax error at or near "'abc123'"
Position: 62: SELECT "topic".* FROM "topic" WHERE ("ForumID" in 'abc123','1234')):
Я думаю, проблема в том, где в операторе SQL ставится скобка.Это должно быть после в вместо «ForumID».
SELECT "topic".* FROM "topic" WHERE "ForumID" in ('abc123','1234')
работает отлично, поэтому это ошибка в адаптере postgresql или я что-то не так делаю в своем запросе?
Спасибо.