나는 커스텀 액션을 가진 풍부한 컨트롤러를 가지고있다. 액션은 꽤 무거운, 그래서 그것을 캐시에 일하고 있어요 :컨트롤러의 모든 캐시 만료
그것은 아주 좋은 작동class MyController < ApplicationController
caches_action :walk_to_mordor
# GET /my/:id/walk_to_mordor/:direction
def walk_to_mordor
# srz bzns
end
end
는 캐싱이 수행되며 페이지가 지금 빠릅니다. 그러나 사용자가 페이지의 링크를 클릭하여 캐시를 "버스트 (bust)"할 수있게하려고합니다. 처음에 나는 시도했다 :
def bust_cache
expire_action :action => :walk_to_mordor
end
레일스는 나의 행동과 일치하지 않는다고 불평했다. 매개 변수 때문일 수 있습니다. 흠, 이제 그에게 그것을 줄 수 있도록 :
def bust_cache
MyEntities.all.each do |e|
expire_action walk_to_mordor_path(e, ??)
end
end
문제, 나는 아마도 :direction
의 모든 선택을 식별 할 수 없습니다.
특정 정규식과 일치하는 모든 동작 캐시 또는 특정 컨트롤러의 모든 동작 캐시를 지우는 방법이 있습니까?
하나는 단순히 mordor – Alejo