gpt4 book ai didi

ruby-on-rails - 无法在 Rails 上 expire_action

转载 作者:行者123 更新时间:2023-12-04 05:17:35 24 4
gpt4 key购买 nike

tl;博士

我的 expire_index下面的方法正在被调用,我看到了 puts在日志中。但是,当我刷新页面时,是旧版本。

注:我正在使用 rails_admin 来更新模型。但也注意到直接使用 rails 控制台的相同行为。

感谢您的帮助。非常感谢!

详情

app/controllers/posts_controller.rb

class PostsController < ApplicationController
caches_action :index
cache_sweeper :post_sweeper

def index
@posts = Post.published
end

def show
@post = Post.find(params[:id])
end
end

app/sweepers/post_sweeper.rb
class PostSweeper < ActionController::Caching::Sweeper
observe Post

def after_save(post)
puts "======================"
puts " AFTER SAVE "
puts "======================"
expire_index
end

private
def expire_index
puts "======================"
puts " EXPIRING INDEX "
puts "======================"
expire_action(:controller => '/posts', :action => 'index')
end
end

config/environments/production.rb
config.action_controller.perform_caching = true
config.cache_store = :dalli_store # using memcachier on heroku

最佳答案

得到它的工作。这是它所花费的:

def expire_index
cache_key = "views/#{request.host_with_port}/posts"
Rails.cache.delete(cache_key)
end

有关此要点的更多详细信息 -> https://gist.github.com/4400728

关于ruby-on-rails - 无法在 Rails 上 expire_action,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14065934/

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