82 lines
1.9 KiB
Ruby
82 lines
1.9 KiB
Ruby
class EmployersController < ApplicationController
|
|
before_action :set_employer, only: [:show, :edit, :update, :destroy]
|
|
|
|
# GET /employers
|
|
def index
|
|
@employers = Employer.order(:last_name).page(params[:page]).per(5) # Adjust the number per page as needed
|
|
end
|
|
|
|
# GET /employers/:id
|
|
def show
|
|
@employer = Employer.includes(:employer_records, :direct_participants).find(params[:id])
|
|
@employer_records = @employer.employer_records.includes(:participant)
|
|
end
|
|
|
|
|
|
# GET /employers/new
|
|
def new
|
|
@employer = Employer.new
|
|
end
|
|
|
|
# POST /employers
|
|
def create
|
|
@employer = Employer.new(employer_params)
|
|
if @employer.save
|
|
redirect_to @employer, notice: 'Employer was successfully created.'
|
|
else
|
|
render :new
|
|
end
|
|
end
|
|
|
|
# GET /employers/:id/edit
|
|
def edit
|
|
end
|
|
|
|
# PATCH/PUT /employers/:id
|
|
def update
|
|
if @employer.update(employer_params)
|
|
redirect_to @employer, notice: 'Employer was successfully updated.'
|
|
else
|
|
render :edit
|
|
end
|
|
end
|
|
|
|
# DELETE /employers/:id
|
|
def destroy
|
|
@employer.destroy
|
|
redirect_to employers_url, notice: 'Employer was successfully destroyed.'
|
|
end
|
|
|
|
# GET /employers/search
|
|
# This action responds to the auto-complete AJAX requests
|
|
def search
|
|
if params[:term].present?
|
|
@employers = Employer.where(
|
|
"first_name LIKE :term OR last_name LIKE :term",
|
|
term: "%#{params[:term]}%"
|
|
)
|
|
else
|
|
@employers = Employer.none
|
|
end
|
|
|
|
render json: @employers.map { |e| { label: e.full_name, value: e.id } }
|
|
end
|
|
|
|
|
|
private
|
|
|
|
def set_employer
|
|
@employer = Employer.find(params[:id])
|
|
end
|
|
|
|
def employer_params
|
|
params.require(:employer).permit(
|
|
:first_name, :last_name,
|
|
:address_line_1, :address_line_2,
|
|
:city, :state, :zip,
|
|
:phone, :email, :tin, :dob, :ssn, :gender
|
|
)
|
|
end
|
|
|
|
end
|