У меня есть автономное грабли, которое обновляет мои модели. Когда это произойдет, я хочу прекратить действие: show для этой модели.
# in lib/models/my_model.rb
after_update :expire_cache
def expire_cache
expire_action :controller => :my_models, :action => :show, :id => self
end
Это не работает, потому что expire_action недоступно в модели. Вызов ActionController.new.expire_action вызывает у меня много странных проблем с маршрутом, что вполне разумно, поскольку ни одна из логик маршрута не подключена.
Я думаю, что обычным способом expire_action является уборщик, но это не работает, потому что моя модель не обновляется через действия контроллера.
ПРИМЕЧАНИЕ. Я чувствую, что могу использовать кеширование неправильно, поскольку нигде не могу найти ответ на этот вопрос.