Show each company's employees - all

master
Matt Huntington 8 years ago
parent 38591e650a
commit 3f29e03235

@ -13,8 +13,42 @@ class Company
end end
def self.all def self.all
results = DB.exec("SELECT * FROM companies;") results = DB.exec(
return results.map { |result| Company.new(result) } <<-SQL
SELECT
companies.*,
people.id AS person_id,
people.name AS person_name,
people.age
FROM companies
LEFT JOIN jobs
ON companies.id = jobs.company_id
LEFT JOIN people
ON jobs.person_id = people.id;
SQL
)
companies = []
last_company_id = nil;
results.each do |result|
if result["id"] != last_company_id
company = Company.new({
"id" => result["id"],
"name" => result["name"],
"location" => result["location"],
"employees" => []
});
companies.push(company)
last_company_id = result["id"]
end
if result["person_id"]
companies.last.employees.push(Person.new({
"id" => result["person_id"],
"name" => result["person_name"],
"age" => result["age"]
}))
end
end
return companies
end end
def self.find(id) def self.find(id)

Loading…
Cancel
Save