0
Rails.cache.fetch 함수를 사용하여 데이터베이스 호출을 캐시하는 방법을 배웠지 만 요청에 응답 할 때 관련 테이블의 내용을 두 개 포함합니다 (예 :사용하는 캐시 응답
).tracks = Rails.cache.fetch("events-by-track", :expires_in => 12.hours) do
Track.find(:all)
end
respond_with(tracks, :include => {:events => {:include => :speaker}})
이 트랙은 Track.find (: all)라는 호출을 캐시하지만 (포함 된 이벤트와 발표자를 캐싱하고 있습니까?)
안녕하세요, 감사합니다, 그러나 이것은 나에게 오류를 제공합니다. '포함'이라는 연관성을 찾을 수 없습니다. 아마 철자가 틀린거야? – Sandro
그냥 Track.find (: all, : include => [: events]) 만하면 모든 트랙을 반환하지만 이벤트는 포함하지 않습니다. – Sandro
내 솔루션을 업데이트했습니다. 역학은 Rails.cache.fetch 블록에있는 것이 실제로 캐시되는 개념만큼이나 중요하지 않습니다. 캐싱을 구현 한 방법에 따라 이러한 연결을 올바르게 저장할 수 없다는 것을 기억하십시오. 실제로 저장하고있는 내용을 수정해야 할 수도 있습니다. 예를 들어, 연관된 객체의 배열을 반환해야 할 수 있습니다. –