Очиститель 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] в активный админ-конфиг для этой модели.

Другие вопросы по тегам