diff --git a/app/controllers/professors_controller.rb b/app/controllers/professors_controller.rb new file mode 100644 index 0000000..6753561 --- /dev/null +++ b/app/controllers/professors_controller.rb @@ -0,0 +1,10 @@ +class ProfessorsController < ApplicationController + def autocomplete + @professors = Professor.search(params[:term]) + respond_to do |format| + format.json do + render json: @professors.map { |p| { id: p.id, label: p.name } } + end + end + end +end diff --git a/app/models/professor.rb b/app/models/professor.rb index a29ac59..32d1017 100644 --- a/app/models/professor.rb +++ b/app/models/professor.rb @@ -6,4 +6,5 @@ def TBA end scope :order_by_realness, -> { order('CASE WHEN("name" = \'Staff\' OR "name" = \'TBA\') THEN 1 ELSE 0 END') } + scope :search, ->(q) { where("\"name\" LIKE '%#{q}%'") } end diff --git a/config/routes.rb b/config/routes.rb index fba7c88..0432ac9 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -20,6 +20,12 @@ end end + resources :professors, only: [] do + collection do + get :autocomplete + end + end + get 'scheduler' => 'scheduler#index' post 'scheduler' => 'scheduler#create' delete 'scheduler' => 'scheduler#destroy'