Ini adalah pendekatan lain.
Offer.find_by_sql("SELECT * FROM offers o WHERE NOT EXISTS (SELECT * FROM products WHERE products.offer_id = o.id AND service_id IS NULL)")
Bahkan ide ORM adalah bahwa Anda mengabstraksikan SQL, dalam kueri kompleks semacam ini, saya pikir lebih baik memilih solusi paling sederhana dan tidak semakin memperumit kueri.