Я получил изобретательный контроллер с настраиваемым действием. Действие довольно тяжелое, поэтому я работаю над его кэшированием:
class MyController < ApplicationController
caches_action :walk_to_mordor
# GET /my/:id/walk_to_mordor/:direction
def walk_to_mordor
# srz bzns
end
end
Работает очень хорошо, кэширование выполнено, и страница теперь работает быстро. Тем не менее, я хочу разрешить пользователю «разрушать» кеш, нажав на ссылку на странице. Сначала я попробовал:
def bust_cache
expire_action :action => :walk_to_mordor
end
Rails пожаловался, что ни один маршрут не соответствует моим действиям. Может быть из-за параметра. Хм, давай ему это:
def bust_cache
MyEntities.all.each do |e|
expire_action walk_to_mordor_path(e, ??)
end
end
Проблема, я не могу определить все варианты :direction
.
Есть ли способ очистить все кэши действий, которые соответствуют определенному регулярному выражению, или все кэши действий от определенного контроллера?