Я работаю над Rails 3.0.5 и PostgreSQL.
У меня есть модель Offer
, в которой много Products
.
class Offer < ActiveRecord::Base
has_many :products
end
class Product < ActiveRecord::Base
belongs_to :offer
end
Продукт имеет идентификатор, который обновляется при регистрации в стороннем сервисе. Давайте назовем это service_id
. Я хочу область предложений, которая получает все предложения, в которых каждый отдельный продукт зарегистрирован в стороннем сервисе. Другими словами, меня интересует только предложение, если все его продукты имеют сервисный идентификатор.
Объем предложения: joins(:products).where("products.service_id is not NULL")
, просто возвращает предложения, в которых есть хотя бы один товар, который не является нулевым.
Любая помощь будет оценена.
(PS: извините за название, я пытался объяснить это как мог.)
EDIT:
Например: если у меня есть 2 предложения: Предложение1 и Предложение2. В Offer1 есть продукты p1 и p2, а в Offer2 есть продукты p3 и p4. Скажем, у p1, p2 и p3 есть сервис, а у p4 нет. Запрос должен возвращать только Предложение1.