2013-06-17 2 views
0

나는 현재 형태기억 기록

@recordsfound = Model.where(...) 

이 내 컨트롤러에있는 쿼리와 일치하는 모든 레코드를 반환하는 쿼리를 사용합니다. 한 번에 제한된 수의 레코드를 표시하는 페이지 매김을 사용하고 있습니다. 그러나 다음 페이지를 표시하도록 선택하면 쿼리가 다시 실행됩니다. 인스턴스 변수가 아닌 변수에 반환 된 레코드를 저장하는 방법이 있습니까? 따라서 쿼리를 다시 실행하지 않아도됩니까? 내가 완전히 확실하지 않다

덕분에 많이들

답변

1

난 당신이 무슨 뜻인지 이해하지만 당신은 단지도 다음 방문 한 번 페이지 당 실행에 쿼리를 원하는 경우, 당신은 조각 캐싱을 사용할 수 있습니다.

레일즈가 느슨하게로드 된 다음보기에서 쿼리를 조회 할 때 캐시를 사용합니다. 당신은 개발 환경에있는 경우 그 쿼리 것이다

belongs_to :result, touch: true 

참고 : 종속 모델이있는 경우, 당신이 필요한 경우가 업데이 트 때 캐시 만료 있는지 확인해야합니다

<% results.each do |result| %> 
    <% cache result do %> 
    <%= result.foo %> 
    <% end %> 
<% end %> 

여전히 실행됩니다. development.rb 설정 파일에서이를 변경할 수 있습니다. 이 설정을 변경하면 취소하는 것을 잊지 마십시오. 그렇지 않으면 이상한 일이 일어나고 왜 변경 사항이 보이지 않는지 파악하려고 시간을 낭비하게됩니다.

config.action_controller.perform_caching = true 
+0

컨트롤러에 들어 있습니까? 감사합니다 – Texas

+0

아니요, 당신의 견해에 들어갈 것입니다. 결과를 출력 할 때. Rails는로드가 느려지므로 뷰가 히트 될 때만 쿼리가 실행됩니다.이 때 쿼리는 캐시를 사용할 것입니다. – Mohamad

+0

@ 텍사스 내 업데이트를 참조하십시오. – Mohamad