Sql Rails-按关联的平均值排序

Sql Rails-按关联的平均值排序,sql,ruby-on-rails,activerecord,Sql,Ruby On Rails,Activerecord,我正在努力添加一个排序功能在我的假imdb复印机网站 我的电影通过协会有很多评论。不幸的是,我找不到如何在索引页面上按平均评论排序@movies对象 显然,这 includes(:reviews).order("reviews.rating_out_of_ten desc") 不起作用,只有在每部电影的第一次评论中才有顺序。 我如何编写它,使其按所有相关评论的平均顺序排列 提前多谢为了按平均电影分数排序,请加入评论表,并在order by子句中使用avg函数,即 Movie .sele

我正在努力添加一个排序功能在我的假imdb复印机网站

我的电影通过协会有很多评论。不幸的是,我找不到如何在索引页面上按平均评论排序@movies对象

显然,这

includes(:reviews).order("reviews.rating_out_of_ten desc")
不起作用,只有在每部电影的第一次评论中才有顺序。 我如何编写它,使其按所有相关评论的平均顺序排列


提前多谢

为了按平均电影分数排序,请加入评论表,并在order by子句中使用
avg
函数,即

Movie
    .select('movie_id, movie_name, avg(reviews.rating_out_of_ten)')
    .join(:reviews)
    .group('movie_id, movie_name')
    .order('avg(reviews.rating_out_of_ten) desc')

你在这篇文章中需要哪一个字段的平均值??我不确定我是否理解这个问题,但我想要一个与电影相关的评论的十个字段中的平均值。为什么组中需要电影名??我认为movie_id是足够的,我将movie_名称添加到组中,因为它在select中。大多数数据库都有这样的要求,我还需要添加includes(:reviews)吗?选择不起作用,因为:“没有这样的专栏:评论。十分之二的评分”@FabienAlbi
join
应该足够了