1

基本的に、この作業方法のバージョンである AREL を探しています。

@jobs.select{|a| !a.assignments.present? }

AREL またはwhereステートメントを想定すると、より適切高速になります。私が今持っているものよりも速く書くにはどうすればよいでしょうか。

4

2 に答える 2

2

仮定するとJob has_many assignments

@jobs.where('id in (select j.id from jobs j inner join assignments a on a.job_id=j.id)')
于 2012-07-25T13:39:36.973 に答える
1
Job.joins(:assignments).where('assignments.present' => false)

次の sql を実行します。

 SELECT "jobs".* FROM "jobs" INNER JOIN "assignments" ON "assignments"."job_id" = "jobs"."id" WHERE "assignments"."present" = 't'
于 2012-07-25T14:20:27.603 に答える