0

私はルビーにかなり慣れていないので、これを探してみましたが、私が求めているものに対する解決策はありません。

私は会社と仕事の協会を持っています。したがって、1つの会社には多くの仕事があり、各仕事は1つの会社に属しています。

ジョブを検索した後-各ジョブに保存されている関連会社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 に答える