2012-04-08 60 views
3

我得到在Heroku这个错误,但没有在本地(在两个使用PostgreSQL)..的Heroku(PG ::错误:错误:列必须出现在GROUP BY子句或聚合函数中使用

错误是:

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上发生怎样解决呢

+0

我不太确定这是为什么我要添加评论,但尝试将post.content与post.id放在.group括号中。 – 2012-04-08 21:17:55

+0

我添加了它,现在它给了另一列上的错误, 必须有一个更好的方法来解决这个问题,而不是手动添加帖子中的所有列.. 也,我仍然想知道为什么它只发生在Heroku而不是本地PG – 2012-04-08 21:32:26

+0

我认为这是postgres 9.1和9.0之间的区别。尝试在heroku上更新您的版本:https://devcenter.heroku.com/articles/upgrading-postgres-versions – 2012-04-08 21:44:03

回答

1

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

+0

为什么我无法在免费帐户上安装插件? – 2012-04-15 08:24:48

+0

您可能需要添加一个信用卡到您的帐户,虽然您不会被收取任何费用... – jordinl 2012-04-15 21:26:19

+0

任何想法如果我在PostgreSQL 9.1.6上做什么 – Richlewis 2012-12-13 22:06:00

相关问题