2012-04-08 59 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

相關問題