Heroku(PG ::错误:错误:列必须出现在GROUP BY子句中或用于聚合函数

时间:2012-04-08 20:02:20

标签: ruby-on-rails ruby-on-rails-3 activerecord heroku

我在Heroku上收到此错误但不在本地(在两者上使用PostgreSQL)..

错误是:

ActiveRecord::StatementInvalid (PG::Error: ERROR:  column "posts.content" must appear in the GROUP BY clause or be used in an aggregate function

我怀疑它与我的帖子模型中的这一行有关:

scope :with_tags, lambda { |tags| joins(:tags).group('posts.id').where(:tags => { :id => tags.map { |t| t.id } } ).having("COUNT(*) = ?", tags.length) }

为什么它只发生在Heroku上?我该如何解决?

1 个答案:

答案 0 :(得分:1)

正如有人指出这是Postgres 9.0中的一个问题,已在Postgres 9.1中得到修复。在Heroku中,您可以使用Heroku Shared PostgreSQL addon而不是默认数据库,这可以解决问题。