これは私のデータ構造です。mongodbでの親クラスのキャッシュ
Foo
has_many: bar
Bar
belongs_to: Foo
Barのキャッシング方法を記述しようとしていますが、「機能」エントリのみが引き出されます。
def self.get_featured
Rails.cache.fetch("featured", :expires_in => 1.day) do
self.where(:featured=>true)
end
end
これは機能します。ただし、このデータを表示するビューでは、.get_featuredメソッドの一部としてキャッシュされない featured.foo.title
などの情報も必要です。
私はそのようなものを呼び出すたびに、dbは再びヒットします。これはページあたり40回以上発生するため、dbが少し壊れてしまいます。
質問このバーのフィルタリングされたすべてのレコードに対して、フィルタされたバーAND Foo情報をキャッシュするにはどうすればよいですか?
ようmongoid.ymlで有効にする必要があります。ありがとうございました! – Kirill
これはそれ自体では機能しているようですが、私が設定した方法ではうまくいかないのです。このメソッドは、データを '@featured'変数にプルしてから、部分的に:collection => '@featured'を使ってレンダリングすることになっていました。 しかし、私はしようとすると、凍ったオブジェクトのエラーを修正することはできません。 私はこれらのオブジェクトにキャッシュを表示しているからです。別のアプローチを試みます。 – Kirill