##TIL 🇬🇧

How to query nil or not nil associations with ruby on rails

Jeanro Krupa

Jeanro Krupa

1 min read
Thanks to my amazing friend Today I learn how how to nicely query nil or not nil associations with ruby on rails +6.1

It's an exemple from this website where I have a Company model that has_many jobs. I need to be able to find all the companies with a job attach and all the companies without.

class Account < ApplicationRecord
  has_many :jobs
  
  scope :with_a_job, -> { where.associated(:jobs) }
  scope :without_a_job, -> { where.missing(:jobs)}
end

The resulting SQL is:
for missing: 
SELECT "accounts".* FROM "accounts" LEFT OUTER JOIN "jobs" ON "jobs"."account_id" = "accounts"."id" WHERE "jobs"."id" IS NULL
fir associated:
SELECT "accounts".* FROM "accounts" INNER JOIN "jobs" ON "jobs"."account_id" = "accounts"."id" WHERE "jobs"."id" IS NOT NULL
Feed
Sign up or Sign in to comment