제품, 게재 위치, 컬렉션의 세 가지 모델이 있습니다.레일에 명명 된 범위 작성
특정 컬렉션에만없는 제품을 선택하는 이름 범위를 작성하려고합니다.
products has_many :collections, :through => :placements
collections has_many :products, :through => :placements
나는 지금까지 이것에 대해 가지고 :
scope :not_in_front, joins(:collections).where('collections.id IS NOT ?', 4)
그러나 내가 쿼리에서 예상과 반대 생성 :
Product Load (0.3ms) SELECT "products".* FROM "products" INNER JOIN "placements" ON "products"."id" = "placements"."product_id" WHERE "placements"."collection_id" = 4
어떤 생각 방법을 이 제품을 쓰려면 내가 아닌 제품만을 선택하십시오. 그 특별한 컬렉션? 대신 collections.id IS NOT 4
의
나는 이미 ... 동일한 쿼리를 사용했습니다. – Slick23