이것은 내 데이터 구조입니다.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가 약간 파열됩니다.
질문 :이 막대의 필터링 된 모든 레코드에 대해 필터링 된 막대 및 Foo 정보를 어떻게 캐시 할 수 있습니까?
처럼 mongoid.yml를 활성화해야합니다. 고맙습니다! – Kirill
이것은 그 자체로 효과가있는 것 같지만, 내가 설정 한 방식으로는 작동하지 않습니다. 이 메소드는 '@featured'변수로 데이터를 가져온 다음, collection => '@featured'로 부분을 렌더링합니다. 그러나, 나는 이것을 시도 할 때 고정 된 개체 오류를 수정할 수 없습니다. 그 개체에 캐싱보기가 있기 때문에 그게 있는지 궁금해. 다른 접근 방식을 시도합니다. – Kirill