0

我对 ruby​​ 很陌生,并且已经尝试过寻找这个但没有解决方案可以满足我的需求。

我有一个公司到工作的协会。所以一个公司有很多工作,每个工作都属于一个公司。

搜索工作后 - 我想查询保存到每个工作的关联公司 ID。

因此,在搜索例如“Ruby”的职位后 - 我想返回与该职位匹配的所有职位及其相关的公司数据。以下查询类型的唯一问题是工作 ID 被替换为公司 ID,我永远无法访问每个工作 ID

@jobs_list = Jobs.select("jobs.*, companies.*").where("title LIKE ?", "%#{params[:jobs][:title]}%").joins("LEFT JOIN companies on jobs.company_id = companies.id")

有什么建议/更好的做法吗?

4

1 回答 1

2

首先确保您的Job模型有一条线:belongs_to :company

然后使用includes急切加载公司数据:

@jobs = Jobs.where("title LIKE ?", "%#{params[:jobs][:title]}%").
             includes(:company)

您现在可以像这样访问公司数据,而无需任何进一步的数据库查询:

@jobs.each do |job|
  job_name = job.name
  company_name = job.company.name
end
于 2012-12-17T21:49:01.800 回答