Rails не удаляет страницу кэша /.html, когда вызывается уборщик
У меня есть некоторые проблемы с Sweepers и Caching in Rails.
Файл.html в /cache создается при первом просмотре.
Действие Sweeper вызывается при необходимости.
Однако действие уборщика не удаляет страницу.html из /cache
Приведенный ниже код удален из директории my /controllers и /sweepers. puts
строки обе записываются в журнал, так что я знаю, что мы выполняемся нормально - команда expire, похоже, не удаляет файл.
У кого-нибудь есть идея, где я могу бездельничать?
class WidgetsController < ApplicationController
cache_sweeper :widget_sweeper
caches_page :help
def help
render :template => '/widgets/help.html'
end
end
class WidgetSweeper < ActionController::Caching::Sweeper
observe HelpPage
def after_save(record)
puts "record "
puts record.inspect
expire_page(:controller => 'widgets', :action => 'help')
puts "ok!"
end
end
1 ответ
Вы просто тестируете это, манипулируя некоторыми записями HelpPage в консоли? Похоже, вы должны повлиять на изменения в контроллере.
Я сделал тестовое приложение, используя код, который вы предоставили выше, и запустил его с включенным кэшированием. Я создал несколько новых записей HelpPage в консоли rails и получил два сообщения журнала, но срок действия страницы не истек.
Однако, когда я создал новую HelpPage в контроллере, я получил срок действия страницы, как и ожидалось.