Autocomplete method for searching categories, courses, subjects, tutors and students.
# File app/controllers/api/search_controller.rb, line 3 def autocomplete params[:page] ||= 1 params[:query] ||= '' params[:per_page] = 10 if params[:search_what] == 'category' @categories = Category.search(params).page(params[:page]).per(params[:per_page]).records respond_to do |format| format.json { render :json => @categories} end elsif params[:search_what] == 'term' @courses = Course.search(params).page(params[:page]).per(params[:per_page]).records @subjects = Subject.search(params).page(params[:page]).per(params[:per_page]).records @tutors = Tutor.search(params).page(params[:page]).per(params[:per_page]).records @tutors = @tutors.map {|t| t.serializable_hash(only: [:id, :name, :email], methods: [:full_name]).merge(_type: :tutor)} @students = Student.search(params).page(params[:page]).per(params[:per_page]).records @students = @students.map {|s| s.serializable_hash(only: [:id, :name, :email], methods: [:full_name]).merge(_type: :student)} respond_to do |format| format.json { render :json => @subjects + @courses + @tutors + @students } end else @tutors = Tutor.search(params).page(params[:page]).per(params[:per_page]).records @tutors = @tutors.map {|t| t.serializable_hash(only: [:id, :name, :email], methods: [:full_name]).merge(_type: :tutor)} @students = Student.search(params).page(params[:page]).per(params[:per_page]).records @students = @students.map {|s| s.serializable_hash(only: [:id, :name, :email], methods: [:full_name]).merge(_type: :student)} @mentors = Mentor.search(params).page(params[:page]).per(params[:per_page]).records @courses = Course.search(params).page(params[:page]).per(params[:per_page]).records @subjects = Subject.search(params).page(params[:page]).per(params[:per_page]).records respond_to do |format| format.json { render :json => @courses + @subjects + @tutors + @mentors + @students } end end end