2017-03-23 6 views
0

나는이 모델 협회가 있습니다. 테스트와 함께 질문을 미리로드 할 수있는 방법이 있습니까? 다음과 같음 : User.preload(:taken_tests).preload(:questions)?레일의 예압 상단에 예하 중을 수행하는 방법은 무엇입니까?</p> 이제 <pre><code>class User < ApplicationRecord has_many taken_tests . . . end class Test < ApplicationRecord has_many questions . . end </code></pre> <p><code>User.preload(:taken_tests)</code> 미리로드를 테스트 :

+0

좋아요, 제가 한 것은 한 가지입니다. 나는 사용자에게'has_many answered_questions, : :: taken_tests, source : questions'라는 또 다른 연관을 추가했다. 그러면'User.preload (: answered_questions)'를했을 때, 테스트와 질문을 미리로드했습니다. – vantony

답변

1

예, 당신은 당신이 경우 필요한 경우가 연결을 체인 수

이러한 테스트에 속하는이 모든 질문과 함께 사용자의 모든 테스트를로드

User.preload(taken_tests: :questions) 

협회의 체인을 preload 수 있습니다 당신도 미리로드 할 수있는 답이 있습니다.

User.preload(taken_tests: [questions: :answers])