2013-05-30 2 views
0

게시물, 카테고리 및 분류 모델이 있다고 가정 해 보겠습니다.레일스 ActiveRecord : 여러 값으로 여러 값으로 검색

게시물은 분류를 통해 많은 카테고리를 가질 수 있습니다.

이제 카테고리 배열 중 하나 이상의 항목과 일치하는 모든 게시물을 가져올 수 있습니까?

예 :

Post 1 has categories 2,5,6 
Post 2 has categories 1,5,9 
Post 3 has categories 2,4,8 
Find posts that match 3,5 

나는 게시물 1과 2는 반환하고자합니다.

감사합니다. 다음 has_many :categories를 그렇지 않은 경우

Post.joins(:categorizations).where(:categorizations => {:category_id => [3, 5]}) 

, 실제로 Categorization :

답변

1

CategorizationPostCategory의 결합 모델이라고 가정

Post.joins(:categories).where(:categories=> {:id => [3, 5]}) 

주 두 번째 방법은 처음에 작동합니다 또한 2 개의 SQL 조인이 필요하므로 잘 수행되지 않을 수도 있습니다.

관련 문제