我在编写范围以返回所有 has_many 关联都符合条件的记录时遇到问题。
我有这些模型:
class Product
has_many :listings
end
class Listing
belongs_to :product
belongs_to :issue
end
class Issue
has_many :listings
end
基本上一个产品可以列出几个不同的问题。我希望能够获得在特定问题中没有列表的所有产品。到目前为止,我的产品模型中有这个范围:
scope :not_listed_in, lambda { |issue|
joins(:listings)
.where("listings.issue_id != ?", issue.id)
}
这不起作用,因为它会找到至少一个列表不在问题中的任何产品。我需要某种方式来询问在特定问题中没有列表的所有产品。