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)
명시 적으로 포함해야 할 필요가 있다고 생각합니다. creator 그렇지 않으면 액세스 할 때 쿼리합니다. 제작자는 이미 쿼리 된 멤버 중 하나라는 것을 레일이 알 수있는 방법이 없기 때문에. – Abid
@Abid 당신이 옳은 것처럼 보입니다. 답변으로 의견을 옮기고 싶다면 받아 들일 것입니다. –
는 댓글에 대한 답변을 이동했습니다. – Abid