我正在尝试获取与特定条件(例如特定供应商)没有关联的所有记录(证书)。
class Certificat < ApplicationRecord
has_many :certifications
end
class Certification < ApplicationRecord
belongs_to :supplier
belongs_to :certificat
end
class Supplier < ApplicationRecord
has_many :certifications, dependent: :destroy
end
我的解决方案,但结果始终为空
@certificat.left_outer_joins(:certifications).where('certifications.id IS NULL AND certifications.supplier_id = ?), supplier_id)
有什么想法可以检索没有特定供应商关联的所有证书?
答案 0 :(得分:0)
在进行糊涂和大量尝试之后!
Certificat.where('NOT EXISTS (SELECT id FROM certifications WHERE certifications.certificat_id = certificats.id AND certifications.supplier_id = ? LIMIT 1)', @supplier.id) %>