class Admins::SchoolQuery < ApplicationQuery include CustomSortable attr_reader :params sort_columns :users_count, :created_at, default_by: :created_at, default_direction: :desc def initialize(params) @params = params end def call schools = School.all keyword = strip_param(:keyword) Rails.logger.info("###########{keyword}") if keyword schools = schools.where('schools.name LIKE ?', "%#{keyword}%") end schools = schools.left_joins(:user_extensions).select('schools.*, IFNULL(count(user_extensions.user_id),0) users_count').group('schools.id') custom_sort schools, params[:sort_by], params[:sort_direction] end end