gpt4 book ai didi

ruby-on-rails-3 - 文章更新时如何使主页缓存过期?

转载 作者:行者123 更新时间:2023-12-04 18:16:24 28 4
gpt4 key购买 nike

我正在尝试在发布新文章时使用清扫器清除主页索引操作。

主页缓存在开发环境中运行良好,并在 1 分钟后过期。但是,当保存文章时,不会触发清扫器操作。

class HomeController < ApplicationController
caches_action :index, :expires_in => 1.minute
cache_sweeper :article_sweeper
def index
@articles = Article.published.limit(5)
end
end

class ArticleSweeper < ActionController::Caching::Sweeper
observe Article
def after_update(article)
expire_action(:controller => 'home', :action => 'index')
end
end

要么我在某个地方出错,要么需要一种不同的方法来使主页缓存过期。

我的应用程序使用 ActiveAdmin 来更新文章,并使用 Dalli 来更新 Memcache(因为我将使用 Heroku)。

最佳答案

解决方案的两个步骤:

对模型执行更改的 Controller 需要具有清扫器引用,而不是如上所示的目标 Controller 。在这种情况下,它是 active_admin,所以我将它添加到我的 admin/articles.rb 文件 (source) 中,而不是家庭 Controller 。

controller do
cache_sweeper :article_sweeper
end

并且 Controller 名称需要一个斜杠
expire_action(:controller => '/home', :action => 'index')

关于ruby-on-rails-3 - 文章更新时如何使主页缓存过期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11600087/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com