Не думаю, что здесь достаточно подробностей, чтобы действительно ответить на ваш вопрос, но вот несколько вопросов:
Подметальная машина должна срабатывать независимо от действия full_report, поэтому, если вы вносите изменения в компанию, вы должны увидеть срабатывание отладчика (что, по-видимому, происходит правильно). Тогда вам не нужно запускать действие full_report, так что на этом этапе вы можете убедиться, что кэшированный файл был удален. Может быть полезно пройти через expire_action в отладчике, чтобы увидеть, пропускает ли rails срок действия по какой-либо другой причине.
EDIT:
о, вы знаете что, я просто копался в этом, и похоже, что expire_action будет выполняться в контексте контроллера (я читал источник гемов в actionpack). Предполагается, что «self» является контроллером, поэтому передача вами параметра: controller игнорируется.
В других примерах вместо параметров указывается конкретная строка (например, expire_action '/reports/full_report'
). Лично мне это не нравится - он не использует маршрутизатор - но похоже, что он будет работать.
Возможно, вам следует переключиться на этот метод, убедиться, что он работает, а затем в отладчике посмотреть, есть ли у вас доступ к url_for. это может быть так просто, как expire_action url_for(:controller => 'reports', :action => 'full_report')