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(:すべて)が、それはまた含まイベントやスピーカーをキャッシュされましたか?
こんにちは、おかげで、これは私にエラーを与えます。 'include'という名前の関連付けが見つかりませんでした。おそらくあなたはそれを間違って綴ったでしょうか? – Sandro
私はちょうどTrack.find(:all、:include => [:events])とすれば、すべてのトラックを返しますが、イベントは含みません。 – Sandro
私のソリューションを更新しました。その仕組みは、Rails.cache.fetchブロックに入っているものが実際にキャッシュされているものであるという概念ほど重要ではありません。キャッシングをどのように実装すれば、これらの関連付けを適切に保存することができない可能性があることに注意してください。実際に格納しているものも変更する必要があります。たとえば、関連するオブジェクトの配列を返す必要があるかもしれません。 –