0

많은 멤버와 많은 작업이있는 프로젝트 모델이 있다고 가정 해 보겠습니다.중첩 된 반복 모델을로드하는 데 열심입니까?

class Project < ActiveRecord::Base 
    has_many :memberships 
    has_many :members, :through => :memberships, :class_name => 'User' 
    has_many :tasks 
end 

프로젝트에서 작업을 만들 때 우리는 사용자가 어떤 작업을 생성했는지 기록합니다. 현재 프로젝트의 구성원 인 사용자 만 내 projects#show 행동

class Task < ActiveRecord::Base 
    belongs_to :creator, :class_name => 'User' 
    belongs_to :project 
end 

, 나는 프로젝트를 발견하고 그것의 구성원, 작업 및 제작자와를 함께 표시 할 수 있습니다. 쿼리 속도를 높이기 위해 이러한 것들을 열심히로드하려고합니다.

검색 회원을로드하는 데 열망하고 작업에는 회원 인 작성자 만있을 수 있으므로 작업 작성자를 구체적으로 포함 할 필요가 없다고 생각합니까?

Search.includes(:members, :tasks) 

또는 나는이 수행해야합니다 : 즉

,이 작업을 수행 할 수 있습니다 나는 당신이 필요합니다 생각

Search.includes(:members, :tasks => :creator) 
+0

명시 적으로 포함해야 할 필요가 있다고 생각합니다. creator 그렇지 않으면 액세스 할 때 쿼리합니다. 제작자는 이미 쿼리 된 멤버 중 하나라는 것을 레일이 알 수있는 방법이 없기 때문에. – Abid

+0

@Abid 당신이 옳은 것처럼 보입니다. 답변으로 의견을 옮기고 싶다면 받아 들일 것입니다. –

+0

는 댓글에 대한 답변을 이동했습니다. – Abid

답변

1

명시 적으로 포함 : 작성자 그렇지 않으면 그 때를 쿼리합니다 레일이 이미 작성자가 이미 쿼리 된 멤버 중 하나임을 알 수있는 방법이 없기 때문에 작성자에게 액세스합니다.

관련 문제