0

나는 두 가지 모델링 HABM 관계와 merchantcategory은 그래서 가입 표 categories_merchants모델이없는 Rails 3에서 조인 테이블을 검색하는 방법은 무엇입니까?

라고 한 한

내가 ActiveRecords에서 다음 쿼리를 작성할 수있는 방법 ?

SELECT 
    categories_merchants.merchant_id 
WHERE 
    categories_merchants.category_id IN (1,2,3,4) 

참고 : 가입 테이블 모델이없는, 그것은 하나 필요없이 레일 3에서 자동으로 작동합니다.

답변

1

이러한 쿼리를 수행하려면 HABTM을 has_many :trough으로 변환하고이를 기반으로 조인 테이블 및 쿼리에 대한 모델을 만들어야합니다. 또한

, 하지만, 아마도 더 성능에, 당신이 할 수있는 -하지만```정의되지 않은 메서드를`점점 계속

Merchant 
    .select(:id) 
    .joins("categories_merchants ON categories_merchants.merchant_id = merchant.id") 
    .where("categories_merchants.category_id IN (?)", [1,2,3,4]) 
+0

을 성능에 문제가 있기 때문에, 나는 이러한 유형의 쿼리를 사용하여 시도 어디에 '# '''에 대한 오류 – Jacob

+0

그것은'.join'이 아니고 .join'은 그것에 대해 미안하다. 나는 편집했다. – clyfe

관련 문제