У меня проблема с написанием области для возврата записей, в которых ВСЕ ассоциации 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)
}
Это не работает, так как он найдет все продукты, хотя бы одно перечисление которых не входит в выдачу. Мне нужен какой-то способ запросить все продукты, которые НЕ имеют списков в конкретном выпуске.