미션, 사용자 및 위트가있는 모델이 있습니다. 지혜는 임무와 사용자에게 속합니다.레일로드, 포함 및 세션 속성
특정 사용자에 대한 모든 임무 및 열의 부하 목록을로드하고 싶습니다. LEFT OUTER JOIN을 수행하고 조인에 조건을 추가해야합니다.
Mission.joins("LEFT OUTER JOIN wits ON wits.mission_id = missions.id AND wits.user_id = #{current_user.id}")
그런 다음 내 목록에 내가 올바른 사용자에 속하는 지혜를 얻을 수 mission.wits.first을 수행 할 수 있습니다 여기에 지금 노력하고 있습니다 것입니다.
매우 친절한 레일이 아니며, .loaded를 확인해야합니다. 조건이 충족되지 않으면 모든 재치가로드되지 않도록 속성.
더 좋은 방법이 있습니까? 범위를 사용하여 작업을 완료 하시겠습니까? 어쩌면 Mission에 새로운 가상 속성을 추가 할 수도 있지만, 각 목록에서 데이터베이스를 20 번 호출하는 것을 피하고 싶습니다.
업데이트 : 결국 나는 mission_list와 각 mission마다 current_user에 대한 위트 상태를보고 싶습니다. acts_as_api라는 JSON에서 내 목록보기를 만드는 데 사용하는 보석을 사용하고 있습니다.하지만 모델 내부의 세션 변수에 액세스 할 수 없기 때문에 필요한 모든 것을로드하려면이 열망하는로드하는 물건을보고있는 것입니다. 컨트롤러에서. 이 당신을 위해 작동합니다
아니요. 실제로는 선교사 명단을 원합니다. 각각의 임무는 위트가 관련이 있는지 없는지를 나타내며, 쿼리가 있으면 상태를 나타냅니다. – rnaud