Sintaxe ActiveRecord para encontrar todos os itens com uma classificação média de x ou superior ao usar uma junção

Eu tenho dois modelos no meu aplicativo de trilhos. Itens e Revisões. Os comentários pertencem ao item e os itens têm muitos comentários.

O modelo de revisão é assim:

create_table "reviews", :force => true do |t|
  t.text     "comment"
  t.integer  "rating"
  t.integer  "reviewable_id"
  t.string   "reviewable_type"
  t.datetime "created_at"
  t.datetime "updated_at"
end

(Comentários são polimórficos, é por isso que eles têm um id e revisável e um tipo de revisável)

Estou tentando montar uma consulta ActiveRecord que permita selecionar todos os itens com classificação média de 80 ou mais.

Eu tentei um número de variações diferentes sobre isso que eu pensei que teria funcionado

Item.joins(:reviews).where("avg(reviews.rating) > 80").group(:id)

no entanto, isso resulta no seguinte erro:

Error: Mysql2::Error: Invalid use of group function: SELECT `items`.* FROM `items` INNER JOIN `reviews` ON `reviews`.`reviewable_id` = `items`.`id` AND `reviews`.`reviewable_type` = 'Item' WHERE (avg(reviews.rating) > 80) GROUP BY id

Se alguém pode ajudar seria muito apreciado.

questionAnswers(1)

yourAnswerToTheQuestion