joinしたテーブルに対してorderで並び替える際に、カラムの指定に詰まったのでメモ

テーブル構成

FirstNameテーブル(1)

・id

・name

Rateテーブル(多)

・id

・first_name_id

・sound_rate

やりたいこと

firstnameに紐ついているrateをidごとにまとめて、firstnameごとのsoundrateの平均値を出して、降順に並び替える。

やったこと

最初こんな感じで書いてるとorder部分の引数違うよ!と怒られた。

'average("rates.sound_rate") desc' この部分がおかしいっぽい

FirstName.joins(:rates).group(:id).order('average("rates.sound_rate") desc')
ActiveRecord::UnknownAttributeReference: Query method called with non-attribute argument(s): "average(\\"rates.sound_rate\\") desc"