Rails 3:到期缓存的public / index.html页面

时间:2011-01-20 07:40:14

标签: ruby-on-rails caching ruby-on-rails-3

我的 routes.rb 文件中有以下行。

root :to => "portfolio#index"

我将索引页面缓存如下:

class PortfolioController < ApplicationController
  caches_page :index

  def index
    @portfolio = Portfolio.where("featured = ? AND enabled = ?", false, true)
  end
end

PortfolioSweeper.rb

class PortfolioSweeper < ActionController::Caching::Sweeper
  observe Portfolio

  def after_save(portfolio)
    expire_cache(portfolio)
  end

  def after_destroy(portfolio)
    expire_cache(portfolio)
  end

  private

    def expire_cache(portfolio)
      expire_page :controller => 'portfolio', :action => 'index'
    end

end

正在发生的事情是expire_page仅删除 /public/portfolio.html 页面,但不删除 /public/index.html 页面。你们能想出一种删除这两个文件的方法吗?

1 个答案:

答案 0 :(得分:3)

尝试将路径传递给路径,例如:

expire_page '/index.html'