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 Rails.logger.info("#########school_name: ##{schools.first.name}") Rails.logger.info("#########school_id: ##{schools.first.id}") schools = schools.joins(:user_extensions).group("schools.id") Rails.logger.info("#########school_id: ##{schools.first.id}") schools = schools.select('schools.*, COUNT(*) AS users_count') custom_sort schools, params[:sort_by], params[:sort_direction] end end