Commit 24d4089f by Mai Hoang Thai Ha

fixed review p3, add job not found

parent 41dfcb2e
class AppliesController < ApplicationController
before_action :load_job, only: %i[confirm create]
before_action :load_job, only: %i[new confirm create]
def new
@job = Job.find_by(id: params[:job_id])
@apply = @job.apply_jobs.build
@apply = current_user.apply_jobs.build
end
def confirm
@user = User.find_by(id: 1)
@apply = @job.apply_jobs.build(apply_params)
@apply.user_id = @user.id
@apply = current_user.apply_jobs.build(apply_params)
@apply.job = @job
render 'new' if @apply.invalid?
end
def create
@user = User.find_by(id: 1)
@apply = @job.apply_jobs.build(apply_params)
@apply.user_id = @user.id
@apply = current_user.apply_jobs.build(apply_params)
@apply.job = @job
@apply.cv.attach(params[:apply_job][:cv])
if @apply.save
UserMailer.apply_job(@user, @job, @apply).deliver_now
UserMailer.apply_job(current_user, @job, @apply).deliver_now
flash.now[:info] = 'Job application information has been sent to your email'
else
render 'new'
......@@ -31,10 +28,17 @@ class AppliesController < ApplicationController
private
def load_job
@job = Job.find_by(id: params[:apply_job][:job_id])
job_id = params[:job_id] || params[:apply_job][:job_id]
@job = Job.find_by(id: job_id)
render partial: 'shared/job_not_found' if @job.nil?
end
def apply_params
params.require(:apply_job).permit(:user_name, :email, :cv)
end
def current_user
@current_user ||= User.first
end
end
......@@ -8,7 +8,8 @@ class JobsController < ApplicationController
end
def show
@job = Job.find(params[:id])
@job = Job.find_by(id: params[:id])
render partial: 'shared/job_not_found' if @job.nil?
end
private
......
......@@ -10,13 +10,13 @@
= form_with(model: @apply, scope: :apply_job, url: done_path, local: true) do |f|
.row.mb-5
= f.hidden_field :job_id, value: @job.id, class: 'form-control'
= f.hidden_field :job_id, value: @job.id
.col-2
= f.label :name, 'Full name:', class: 'form-label label'
.col-10
span.mx-2.label.form-control
= @apply.user_name
= f.hidden_field :user_name, value: @apply.user_name, class: 'form-control'
= f.hidden_field :user_name, value: @apply.user_name
.row.mb-5
.col-2
......@@ -24,11 +24,10 @@
.col-10
span.mx-2.label.form-control
= @apply.email
= f.hidden_field :email, value: @apply.email, class: 'form-control'
= f.hidden_field :email, value: @apply.email
.row.mb-5
.col-2
/ = f.hidden_field :cv, value: @apply.cv, class: 'form-control'
= f.label :cv, 'Cv: ', class: 'form-label label'
.col-10
= f.file_field :cv, accept: 'application/pdf, application/msword, application/zip, application/xls, application/xlsx'
......
......@@ -5,13 +5,12 @@
h1.my-5.text-center
| Apply form
p.fs-5.fw-bold.mb-4.text-center
| Apply for
= @job.title
.col
= form_with(model: @apply, url: confirm_path, local: true) do |f|
= render 'shared/error_messages', object: f.object
.row.mb-5
= f.hidden_field :job_id, value: @job.id, class: 'form-control'
= f.hidden_field :job_id, value: @job.id
.col-2
= f.label :user_name, 'Full name', class: 'form-label label'
.col-10
......
link crossorigin="anonymous" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" rel="stylesheet" /
.container
.row
.col-md-12
.error-template.text-center
h1.my-4
| Oops!
h2.my-2
| Job Not Found
.error-details.mb-5
| Sorry, an error has occured, Requested page not found!
.error-actions
= link_to 'Take Me Home', root_path, class: 'btn btn-primary btn-lg mx-2'
= link_to 'Contact Support', '#', class: 'btn btn-secondary mx-2 btn-lg'
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment