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
endapp/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
endconfig/environments/production.rb
config.action_controller.perform_caching = true
config.cache_store = :dalli_store # using memcachier on heroku发布于 2012-12-28 21:47:41
开始工作了。以下是它所采取的措施:
def expire_index
cache_key = "views/#{request.host_with_port}/posts"
Rails.cache.delete(cache_key)
end有关此gist -> https://gist.github.com/4400728的更多详细信息
https://stackoverflow.com/questions/14065934
复制相似问题