Очиститель Rails-кэша не работает при создании
У меня есть контроллер, где:
caches_action :show
cache_sweeper :the_model_sweeper, :only => [:update, :destroy]
и подметальная машина:
observe TheModel
def after_save(the_model)
expire_cache(the_model)
end
def after_destroy(the_model)
expire_cache(the_model)
end
def expire_cache(the_model)
expire_action :controller => '/the_model', :action => 'show'
end
и получаю:
ActionController::RoutingError (No route matches {:controller=>"/the_model", :action=>"show"}):
Я предполагаю, что проблема заключается в том, что уборщик вызывается after_save, когда на новой записи нечего будет уничтожать, даже если я специально сказал, что он будет сканировать только при обновлении или удалении.
(Я явно переименовал модель в "Модель" для примера)
1 ответ
Проблема была связана с использованием ActiveAdmin и забыванием (doh...) добавить:only => [:update,:destroy] в активный админ-конфиг для этой модели.