小编Reu*_*ben的帖子

GroupingError:ERROR:列必须出现在GROUP BY子句中或用于聚合函数

我的控制器中的代码是按照最高的平均评价等级对相册进行排名(使用此解决方案中的代码如何通过has_many评论关系显示评分最高的专辑):

@albums = Album.joins(:reviews).select("*, avg(reviews.rating) as average_rating").group("albums.id").order("average_rating DESC")
Run Code Online (Sandbox Code Playgroud)

这段代码在我的开发环境(sqlite3)中完美运行,但是当我将代码推送到heroku和postgresql时,我遇到了这个错误:

PG::GroupingError: ERROR:  column "reviews.id" must appear in the GROUP BY clause or be used in an aggregate function
Run Code Online (Sandbox Code Playgroud)

我意识到这是一个相当普遍的问题,我对SQL有点缺乏经验,因此我无法重构代码,因此它可以在我的开发和生产环境中工作.

sqlite postgresql activerecord ruby-on-rails ruby-on-rails-4

29
推荐指数
1
解决办法
3万
查看次数

验证两个表的唯一性

我有一个CompanyArchive具有相同的表结构模型.两种型号都有validates :name, :uniqueness => true验证.

在company.rb文件中,我在设置自定义验证时遇到问题,当我向Company数据库添加记录时,它还会检查Archive模型(这样,如果存档模型中具有该名称的记录已存在,那么它将不会被添加到Company表中).

我假设这是可能的,但是我在实施方面遇到了麻烦,有人可以帮忙吗?

validation model ruby-on-rails ruby-on-rails-4

1
推荐指数
1
解决办法
1297
查看次数