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 в контроллере, я получил срок действия страницы, как и ожидалось.

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