我有一个Rails 3.1安装与Postgres 8.4。这里是我的宝石版本:Rails 3.1 + postgresql数据库 - SQL语法错误SELECT ... WHERE ... IN
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语句中。它应该在之后而不是在“论坛ID”之前。
SELECT "topic".* FROM "topic" WHERE "ForumID" in ('abc123','1234')
完美地工作,所以这是在postgresql适配器中的错误,或者我在我的查询中做错了什么?
谢谢。
爽!就是这样。谢谢 – Garrett