Scope usage for index view

Viewed 80

I'm trying to use the below scope to order my all reviews page in descending order of the review ratings . How would I implement this? I haved added my index method below.

scope :order_by_rating, ->{left_joins(:reviews).group(:id).order('avg(rating) desc')} 
      def index

        if @tea = Tea.find_by_id(params[:tea_id])
          @reviews = @tea.reviews
        else
          @reviews = Review.all
        end
      end
1 Answers

please change your scope to

scope :order_by_rating, ->{group(:id).order('avg(reviews.rating) desc')}
Related