Commit 9d46edb2 by Mai Hoang Thai Ha

fixed n+1 query jobs#index

parent 7204d6e1
...@@ -3,7 +3,7 @@ class JobsController < ApplicationController ...@@ -3,7 +3,7 @@ class JobsController < ApplicationController
if job_params.present? if job_params.present?
search search
else else
@jobs = Job.includes(:company, :cities_jobs, :cities).page(params[:page]).per(Job::JOB_PER_PAGE) @jobs = Job.sort_by_date.page(params[:page]).per(Job::JOB_PER_PAGE)
end end
end end
...@@ -17,7 +17,7 @@ class JobsController < ApplicationController ...@@ -17,7 +17,7 @@ class JobsController < ApplicationController
if job_params.key?(:model) && job_params.key?(:slug) # search by model if job_params.key?(:model) && job_params.key?(:slug) # search by model
model = params[:model].classify.constantize model = params[:model].classify.constantize
@target = model.find_by(slug: job_params[:slug]) @target = model.find_by(slug: job_params[:slug])
@jobs = @target.jobs.includes(:company, :cities_jobs, :cities).page(params[:page]).per(Job::JOB_PER_PAGE) @jobs = @target.jobs.sort_by_date.page(params[:page]).per(Job::JOB_PER_PAGE)
end end
end end
......
class TopController < ApplicationController class TopController < ApplicationController
def index def index
@total_job = Job.count @total_job = Job.count
@latest_jobs = Job.latest @latest_jobs = Job.sort_by_date.limit(Job::LATEST_JOBS_LIMIT)
@top_cities = City.top_jobs @top_cities = City.top_jobs
@top_industries = Industry.top_jobs @top_industries = Industry.top_jobs
end end
......
...@@ -9,7 +9,7 @@ class Job < ApplicationRecord ...@@ -9,7 +9,7 @@ class Job < ApplicationRecord
has_many :favorite_jobs, dependent: :destroy has_many :favorite_jobs, dependent: :destroy
has_many :history_job, dependent: :destroy has_many :history_job, dependent: :destroy
def self.latest def self.sort_by_date
joins(:cities).includes(:cities, :cities_jobs, :company).order(created_at: :desc).limit(LATEST_JOBS_LIMIT) joins(:cities).includes(:cities, :cities_jobs, :company).order(created_at: :desc)
end end
end end
...@@ -21,8 +21,7 @@ ...@@ -21,8 +21,7 @@
p.job-salary.text-success p.job-salary.text-success
| Salary: #{job.salary} | Salary: #{job.salary}
ul.list-unstyled ul.list-unstyled
- city_list = job.cities = show_location(job.cities)
= show_location(city_list)
.job-desc .job-desc
= truncate(simple_format(job.description), escape: false, length: 250) = truncate(simple_format(job.description), escape: false, length: 250)
hr.my-4 hr.my-4
......
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