2013-03-13 1 views
3

:include:joins을 연관시켜 데이터베이스에서 개체를 가져올 때 불필요한 왕복을 피할 수 있는지 궁금합니다. 예를 들어혼합 : 포함 : 중첩 된 연관이있는 ActiveRecord 쿼리에 합치기

, 같은 모델 공간을 갖는 경우 : 여기

—————    —————    ————— 
| A | 0..1 ————— * | B | * ————— 1 | C | 
—————    —————    ————— 

으로 B와 C를로드 할 수 내보기에 표시 할 알려진 식별자에 의해의 인스턴스를로드 합니다만, 내가 좋아하는 것을 (B는 :include을 통해, C는 :joins을 통해). 이 작업을 수행 할 수 있습니까? 지금까지 나는 :include만을 사용하고 있습니다. 자연적으로 두 개의 추가 왕복 생성

A.find params[:id], :include => [ { :b => :c } ] 

(1. 연관된 연사 페치 3. 연관된 기지국 페치 2. ID로 페치).

답변

0

레일스 3을 사용하고 있으므로 이러한 방법을 연결할 수 있습니다.

A.includes(:b).joins(b: :c).find(params[:id]) 
관련 문제