module JamRuby class Feed < ActiveRecord::Base belongs_to :recording, class_name: "JamRuby::Recording", inverse_of: :feed, foreign_key: 'recording_id' belongs_to :music_session_history, class_name: "JamRuby::MusicSessionHistory", inverse_of: :feed, foreign_key: 'music_session_id' def self.index(params = {start:0, limit:20, sort: 'date'}) start = params[:start] start ||= 0 limit = params[:limit] limit ||= 20 # validate sort sort = params[:sort] sort ||= 'date' raise "not valid sort #{sort}" unless ['date', 'plays', 'likes'].include?(sort) query = Feed.includes(:recording).includes(:music_session_history).offset(start).limit(limit) if sort == 'date' query = query.order('id DESC') elsif sort == 'plays' query = query. query = query.order('(COALESCE(recording., '')') end query end end end