基本上我正在寻找这种工作方法的 AREL 版本:
@jobs.select{|a| !a.assignments.present? }
假设 AREL 或where
语句会更正确和更快。一个人怎么会比我现在写得更快?
基本上我正在寻找这种工作方法的 AREL 版本:
@jobs.select{|a| !a.assignments.present? }
假设 AREL 或where
语句会更正确和更快。一个人怎么会比我现在写得更快?
假设一个Job has_many assignments
@jobs.where('id in (select j.id from jobs j inner join assignments a on a.job_id=j.id)')
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'