我的控制器中有按最高平均 comments 评级对相册进行排名的代码(使用此解决方案中的代码How to display highest rated albums through a has_many reviews relationship):
@albums = Album.joins(:reviews).select("*, avg(reviews.rating) as average_rating").group("albums.id").order("average_rating DESC")
这段代码在我的开发环境(sqlite3)中运行良好,但是当我将代码推送到heroku和postgresql时,我得到了以下错误:
PG::GroupingError: ERROR: column "reviews.id" must appear in the GROUP BY clause or be used in an aggregate function
我意识到这是一个相当常见的问题,我对SQL有点缺乏经验,所以我很难重构代码,使其在我的开发和生产环境中都能工作.