我正在努力在我的假imdb模仿网站中添加排序功能。
我的电影通过协会有很多评论。不幸的是,我无法通过索引页面的评论平均值找到如何订购@movies对象。
显然,这个
includes(:reviews).order("reviews.rating_out_of_ten desc")
没有工作只能通过每部电影的第一次评论来订购。 如何编写它以便按所有相关评论的平均值排序?
非常感谢提前
答案 0 :(得分:2)
要按平均电影分数排序,请加入评论表并按顺序使用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')