PG :: GroupingError:错误:列"events.id"必须出现在GROUP BY子句中或用于聚合函数

Jac*_*ham 7 activerecord ruby-on-rails

事件有一列popularity和许多关键字.关键字具有类别和名称.我试图通过它们的受欢迎程度来命令事件,但是只返回每个关键字名称中最受欢迎的事件和"分类法"类别.

这是我的查询:

Event
  .order(:popularity)
  .joins(:keywords)
  .where(keywords: {category: "taxonomy"})
  .group("keywords.name")
Run Code Online (Sandbox Code Playgroud)

但我得到以下错误:

PG :: GroupingError:错误:列"events.id"必须出现在GROUP BY子句中或用于聚合函数

我哪里错了?

And*_*eko 8

Event
  .order(:popularity)
  .joins(:keywords)
  .group('events.id') # <======
  .where(keywords: { category: 'taxonomy' })
  .group('keywords.name')
Run Code Online (Sandbox Code Playgroud)