Autocomplete method for searching categories, subtrades, trades, fixxperts and customers.
# 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' @subtrades = Subtrade.search(params).page(params[:page]).per(params[:per_page]).records @trades = Trade.search(params).page(params[:page]).per(params[:per_page]).records @fixxperts = Fixxpert.search(params).page(params[:page]).per(params[:per_page]).records @fixxperts = @fixxperts.map {|t| t.serializable_hash(only: [:id, :name, :email], methods: [:full_name]).merge(_type: :fixxpert)} @customers = Customer.search(params).page(params[:page]).per(params[:per_page]).records @customers = @customers.map {|s| s.serializable_hash(only: [:id, :name, :email], methods: [:full_name]).merge(_type: :customer)} respond_to do |format| format.json { render :json => @trades + @subtrades + @fixxperts + @customers } end else @fixxperts = Fixxpert.search(params).page(params[:page]).per(params[:per_page]).records @fixxperts = @fixxperts.map {|t| t.serializable_hash(only: [:id, :name, :email], methods: [:full_name]).merge(_type: :fixxpert)} @customers = Customer.search(params).page(params[:page]).per(params[:per_page]).records @customers = @customers.map {|s| s.serializable_hash(only: [:id, :name, :email], methods: [:full_name]).merge(_type: :customer)} @mentors = Mentor.search(params).page(params[:page]).per(params[:per_page]).records @subtrades = Subtrade.search(params).page(params[:page]).per(params[:per_page]).records @trades = Trade.search(params).page(params[:page]).per(params[:per_page]).records respond_to do |format| format.json { render :json => @subtrades + @trades + @fixxperts + @mentors + @customers } end end end