Commit e47f536f by nnnghia98

using 1 import file

parent bfd51eae
require "csv"
require "activerecord-import"
# require "activerecord -import/active_record/adapters/mysql_adapter"
class CityImport
def cities
cities = []
columns = [:name, :region]
CSV.foreach(Rails.root.join("lib", "jobss.csv"), headers: true) do |row|
cities << {name: row["company province"], region: "Việt Nam"}
end
City.import columns, cities, on_duplicate_key_ignore: true
end
end
\ No newline at end of file
require "csv"
require "activerecord-import"
# require "activerecord -import/active_record/adapters/mysql_adapter"
class CompanyImport
def companies
companies = []
columns = [:name, :email, :address, :company_code]
CSV.foreach(Rails.root.join("lib", "jobss.csv"), headers: true) do |row|
companies << {name: row["company name"], email: row["contact email"],
address: row["company address"], code: row["company id"]}
end
Company.import columns, companies, on_duplicate_key_ignore: true
end
end
...@@ -2,19 +2,33 @@ require "csv" ...@@ -2,19 +2,33 @@ require "csv"
require "activerecord-import" require "activerecord-import"
# require "activerecord -import/active_record/adapters/mysql_adapter" # require "activerecord -import/active_record/adapters/mysql_adapter"
class JobImport class Import
def jobs def import
cities = []
companies = []
industries = []
jobs = [] jobs = []
columns = [:title, :level, :salary, :description, :short_des, :requirement,
:category, :company_id] city_columns = [:name, :region]
company_columns = [:name, :email, :address, :code]
industry_columns = [:name]
job_columns = [:title, :level, :salary, :description, :short_des, :requirement,
:category, :company_id]
CSV.foreach(Rails.root.join("lib", "jobss.csv"), headers: true) do |row| CSV.foreach(Rails.root.join("lib", "jobss.csv"), headers: true) do |row|
cities << {name: row["company province"], region: "Việt Nam"}
companies << {name: row["company name"], email: row["contact email"],
address: row["company address"], code: row["company id"]}
industries << {name: row["category"]}
jobs << {title: row["name"], level: row["level"], salary: row["salary"], jobs << {title: row["name"], level: row["level"], salary: row["salary"],
description: row["description"], short_des: row["benefit"], description: row["description"], short_des: row["benefit"],
requirement: row["requirement"], category: row["type"], requirement: row["requirement"], category: row["type"],
company_id: Company.find_by(code: row["company id"])&.id} company_id: Company.find_by(code: row["company id"])&.id}
end end
Job.import columns, jobs City.import city_columns, cities, on_duplicate_key_ignore: true
Company.import company_columns, companies, on_duplicate_key_ignore: true
Industry.import industry_columns, industries, on_duplicate_key_ignore: true
Job.import job_columns, jobs
end end
end end
require "csv"
require "activerecord-import"
# require "activerecord -import/active_record/adapters/mysql_adapter"
class IndustryImport
def industries
industries = []
columns = [:name]
CSV.foreach(Rails.root.join("lib", "jobss.csv"), headers: true) do |row|
industries << {name: row["category"]}
end
Industry.import columns, industries, on_duplicate_key_ignore: true
end
end
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
<td><%= company.name %></td> <td><%= company.name %></td>
<td><%= company.email %></td> <td><%= company.email %></td>
<td><%= company.address %></td> <td><%= company.address %></td>
<td><%= company.company_code %></td> <td><%= company.code %></td>
</tr> </tr>
<% end %> <% end %>
</tbody> </tbody>
......
require "./app/services/cities.rb" require "./app/services/import.rb"
require "./app/services/industries.rb"
require "./app/services/companies.rb"
require "./app/services/jobs.rb"
namespace :task do namespace :task do
desc "import data" desc "import data"
task import: :environment do task import: :environment do
CityImport.new.cities Import.new.import
CompanyImport.new.companies
IndustryImport.new.industries
JobImport.new.jobs
end end
end end
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