Commit 85e4f1fd by Đường Sỹ Hoàng

Top industries

parent 38dc6cb2
...@@ -67,3 +67,7 @@ h1, h2, h3, h4, h5, h6 { ...@@ -67,3 +67,7 @@ h1, h2, h3, h4, h5, h6 {
.form-inline-city { .form-inline-city {
padding: 5px; padding: 5px;
} }
.form-inline-industry {
padding: 5px;
}
...@@ -2,5 +2,6 @@ class TopController < ApplicationController ...@@ -2,5 +2,6 @@ class TopController < ApplicationController
def index def index
@latest_jobs = Job.latest_jobs.take(Settings.top.job.limit) @latest_jobs = Job.latest_jobs.take(Settings.top.job.limit)
@top_cities = City.sort_top_cities.take(Settings.top.city.limit) @top_cities = City.sort_top_cities.take(Settings.top.city.limit)
@top_industries = Industry.sort_top_industries.take(Settings.top.industry.limit)
end end
end end
class Industry < ApplicationRecord class Industry < ApplicationRecord
has_many :industry_jobs has_many :industry_jobs
has_many :jobs, through: :industry_jobs
def self.sort_top_industries
@cindustries ||= all.sort_by(&:jobs_count).reverse
end
def jobs_count
@jobs_count ||= jobs.count
end
end end
<div class="container">
<div class="row justify-content-md-center">
<div class="col-sm">
<%= industry.name %>
(<%= industry.jobs.count %>)
</div>
</div>
</div>
...@@ -32,4 +32,18 @@ ...@@ -32,4 +32,18 @@
</div> </div>
</div> </div>
</div> </div>
</br>
<div class="Industry list">
<div class="Industry-title-wrapper">
<h3>Top Industries</h3>
</div>
<div class="Industry-content-wrapper">
<div class="row row-cols-3">
<%= render partial: "industries/industry", collection: @top_industries %>
<form class="form-inline-industry">
<button class="btn btn-outline-success" type="button">All industries</button>
</form>
</div>
</div>
</div>
</div> </div>
...@@ -6,3 +6,5 @@ top: ...@@ -6,3 +6,5 @@ top:
limit: 5 limit: 5
city: city:
limit: 9 limit: 9
industry:
limit: 9
...@@ -26,6 +26,11 @@ require "csv" ...@@ -26,6 +26,11 @@ require "csv"
city = City.find_or_initialize_by(name: row["company province"]) city = City.find_or_initialize_by(name: row["company province"])
city.update(city_params) city.update(city_params)
CityJob.find_or_create_by(job_id: job.id, city_id: city.id) CityJob.find_or_create_by(job_id: job.id, city_id: city.id)
industry_params = { name: row["category"] }
industry = Industry.find_or_initialize_by(name: row["category"])
industry.update(industry_params)
IndustryJob.find_or_create_by(job_id: job.id, industry_id: industry.id)
rescue rescue
import_logger = ActiveSupport::Logger.new("log/import.log") import_logger = ActiveSupport::Logger.new("log/import.log")
import_logger.error "Skip #{row}" import_logger.error "Skip #{row}"
......
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