From b6df3be8c0e00a406a84a66fea3eb674fbee6c8a Mon Sep 17 00:00:00 2001 From: Marko Lovic Date: Thu, 27 Aug 2015 12:42:05 +0200 Subject: [PATCH] Change Debate.sort_by method for individual scopes --- app/controllers/debates_controller.rb | 2 +- app/models/debate.rb | 15 ++++----------- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/app/controllers/debates_controller.rb b/app/controllers/debates_controller.rb index bc733c67a..efa441d81 100644 --- a/app/controllers/debates_controller.rb +++ b/app/controllers/debates_controller.rb @@ -6,7 +6,7 @@ class DebatesController < ApplicationController respond_to :html, :js def index - @debates = Debate.search(params).page(params[:page]).for_render.sort_by(@order) + @debates = Debate.search(params).page(params[:page]).for_render.send("sort_by_#{@order}") set_debate_votes(@debates) end diff --git a/app/models/debate.rb b/app/models/debate.rb index 82931dfff..779cca33a 100644 --- a/app/models/debate.rb +++ b/app/models/debate.rb @@ -28,6 +28,10 @@ class Debate < ActiveRecord::Base scope :archived, -> { where("archived_at IS NOT NULL AND hidden_at IS NULL") } scope :flagged_as_inappropiate, -> { where("inappropiate_flags_count > 0") } scope :for_render, -> { includes(:tags) } + scope :sort_by_total_votes, -> { reorder(cached_votes_total: :desc) } + scope :sort_by_likes , -> { reorder(cached_votes_up: :desc) } + scope :sort_by_created_at, -> { reorder(created_at: :desc) } + # Ahoy setup visitable # Ahoy will automatically assign visit_id on create @@ -40,17 +44,6 @@ class Debate < ActiveRecord::Base end end - def self.sort_by(order) - case order - when 'total_votes' - reorder(cached_votes_total: :desc) - when 'created_at' - reorder(created_at: :desc) - when 'likes' - reorder(cached_votes_up: :desc) - end - end - def likes cached_votes_up end