우리는 memcached가있는 dalli gem을 사용합니다. 다음 코드는 여러 페이지에 걸쳐 페이지가 매겨진 Foo 객체를 캐시합니다. 특정 페이지 (예 : 2 또는 10 또는 15)에있을 때 Foo (s)를 캐싱 할 수 있습니다. 그러나 15 페이지의 Foo (Foo-150)를 수정하면 FooSweeper의 메소드를 사용하여 모든 객체의 캐시를 지 웁니다. 위의 동작이 발생하면 after_save 메서드가 호출되지만 캐시는 모든 페이지에 대해 지워지지 않고 요청 된 페이지의 이전 값을 반영합니다.페이지 매김을 사용할 때 모든 페이지의 캐시를 지우는 방법
아래 주어진 코드 조각에 실수가 있습니까?
내 컨트롤러는
class FooSweeper < ActionController::Caching::Sweeper
observe :foo
def after_save(foo)
expire_cache(foo)
end
def before_destroy(foo)
expire_cache(foo)
end
def expire_cache(foo)
expire_action(:controller => 'foos', :action => 'index')
expire_action(:controller => 'foos', :action => 'index', :format => 'text/html')
end
end