2017-11-22 1 views
0

다른 테이블을 통해 조인 된 쿼리에 연결된 테이블을 추가하려고합니다. 예를 들어, 아래에 필자는 시설을 포함하고자합니다 (유효한 구문이 아님).레일 5 - 다른 테이블을 통해 조인 된 쿼리의 연결된 테이블을 연결하는 방법을 포함합니다.

ActualEncounter에 속하고 EncounterFacility에 속합니다. 합니다 (Actual 테이블은 encounter_id 필드를 가지고 있으며, Encounters 테이블은 facility_id 필드가 있습니다.)

도우 코드 :

respond_with(Actual.where(:encounter_id => params[:encounter_id]), 
        :include => [:encounter, :encounter.facility]) 

답변

0

당신이 할 수있는 일 같은 :

respond_with(Actual.where(encounter_id: params[:encounter_id]).includes(encounter: :facility)) 
+0

Leandroico - 그 작동하지 않는 것 같습니다. 그걸로 만남과 시설은 ... 실제가 아닙니다. 감사합니다 –

+0

어떤 응답 형식입니까? JSON? 이 경우이 보석을 사용하는 것이 좋습니다. https://github.com/rails-api/active_model_serializers. 위의 코드 줄은 각 연결에 대해 추가 SQL 쿼리를 만들지 않도록합니다. 응답에서 어떤 데이터가 노출되는지 명시 적으로 알려면 serializer가 필요합니다. – leandroico

+0

'Actual.where (encounter_id : params [: encounter_id]). (encounter : : facility)'와 같은 것으로부터 어떤 종류의 수익을 기대 했습니까? 해시? 배열? 결국, 당신은 항상'ActiveRecord :: Base' 인스턴스를 얻을 것이고,이 인스턴스로부터 여분의 SQL 쿼리를 수행하지 않고 지정된 연관에 접근 할 수 있습니다. 그게 문제 야. – leandroico

관련 문제