query-analyzer을 사용하기 시작했으며 동일한 쿼리에 대해 경고합니다. 컨텍스트에 대한모델에서 레코드를 검색 할 때 동일한 쿼리 수를 줄이는 방법
, 나는 페이지에 25 "게시물"을로드하고,하고있는 현재 사용자 수 "별"게시물 :
0.018s (25 개)와 동일한 쿼리
SELECT SQL_NO_CACHE N AS one FROM 'stars' WHERE 'stars'.'post_id' = N AND 'stars'.'user_id' = N LIMIT N
이 사용자 모델의 메소드입니다.
def has_starred_post?(post)
return false if post.nil?
Star.where(post_id: post.id, user_id: self.id).exists?
end
어떻게이 경고를 줄일 수 있습니까? f 쿼리?
업데이트 :
당 타린 동쪽의 끝, 나는 업데이트에 User
모델 방법이 제가 여전히/캐시 사용자에 속하는 별을 연결 할 수 있지만
def has_starred_post?(post)
return false if post.nil?
self.stars.where(post_id: post.id).exists?
# OR post.stars.where(:user_id => self.id).exists?
end
그 별이 게시물에 속하는지 확인하려면 where
을 사용해야합니다. 권리?
안녕 타린 감사합니다. 귀하의 의견으로 내 질문을 업데이트했지만, 시간이 있으면 질문이 하나 더 있습니다. 감사! –
@ JodyHeavener 일단 답변을 받으면 질문을 변경하는 것이 스포츠로 간주되지 않습니다. – e4c5
하지만 질문은 똑같습니까? –