diff --git a/app/controllers/employer_records_controller.rb b/app/controllers/employer_records_controller.rb index c3fe581..eb6e34e 100644 --- a/app/controllers/employer_records_controller.rb +++ b/app/controllers/employer_records_controller.rb @@ -30,6 +30,15 @@ class EmployerRecordsController < ApplicationController end end + def link_participant + @employer_record = EmployerRecord.new(employer_record_params) + if @employer_record.save + redirect_to employer_path(@employer_record.employer), notice: 'Participant was successfully linked.' + else + render 'show' # Or where you want to redirect in case of failure + end + end + def destroy if @employer_record @@ -49,6 +58,6 @@ class EmployerRecordsController < ApplicationController end def employer_record_params - params.require(:employer_record).permit(:participant_id, :employer_id, :start_date, :end_date) + params.require(:employer_record).permit(:employer_id, :participant_id, :start_date, :end_date) end end diff --git a/app/controllers/employers_controller.rb b/app/controllers/employers_controller.rb index 6f39409..72b77d3 100644 --- a/app/controllers/employers_controller.rb +++ b/app/controllers/employers_controller.rb @@ -8,7 +8,9 @@ class EmployersController < ApplicationController # GET /employers/:id def show + Rails.logger.debug "Employer ID: #{params[:id]}" @employer = Employer.includes(:employer_records, :direct_participants).find(params[:id]) + Rails.logger.debug "Employer: #{@employer.inspect}" @employer_records = @employer.employer_records.includes(:participant) end @@ -68,8 +70,31 @@ class EmployersController < ApplicationController # Handle the logic for creating the employer_record # ... end - + def link_worker + @employer = Employer.find(params[:id]) + participant_id = params[:employer_record][:participant_id] # Assuming this is passed from the form + start_date = params[:employer_record][:start_date] + end_date = params[:employer_record][:end_date] + + employer_record = EmployerRecord.new( + employer: @employer, + participant_id: participant_id, + start_date: start_date, + end_date: end_date + ) + + if employer_record.save + redirect_to @employer, notice: 'Worker was successfully linked.' + else + flash.now[:alert] = employer_record.errors.full_messages.to_sentence + render :show + end + rescue ActiveRecord::RecordNotFound + # Handle case where Employer is not found + redirect_to some_path, alert: 'Employer not found.' + end + private def set_employer diff --git a/app/views/employers/show.html.erb b/app/views/employers/show.html.erb index da7afe2..0a6d880 100644 --- a/app/views/employers/show.html.erb +++ b/app/views/employers/show.html.erb @@ -96,7 +96,31 @@ <% else %>
No linked participants.
<% end %> - + + + <%= form_with(model: [@employer, EmployerRecord.new], url: link_participant_employer_records_path, method: :post, class: 'row g-3') do |form| %> +No linked workers.
<% end %> + + <%= form_with(model: EmployerRecord.new, url: link_worker_employer_path(@employer), method: :post, class: 'row g-3') do |form| %> +