1
我試圖添加緩存到我的Rails 3.1應用程序。清道夫居住在默認名稱空間中,並且我擁有位於Admin命名空間中的控制器。
例如,我在Admin命名空間中有BooksController,並且無論何時在此控制器中的share方法,我都希望書籍緩存被掃描。我試圖命名此方法after_books_share,但該方法未被調用。
class Admin::BooksController < ApplicationController
caches_action :show
cache_sweeper :book_sweeper
def share
# "Share" a book
end
end
class BookSweeper < ActionController::Caching::Sweeper
observe Book
def after_update(book)
expire_cache_for(book)
end
def after_books_share
book = Book.find params[:id]
expire_cache_for(book)
end
def expire_cache_for(book)
expire_action(:controller => '/books', :action => 'show', :id => book)
end
end
羅傑,對不起,其實我有/在用戶面前。所以它實際上在模型更新時正確地使緩存過期。但是,執行books/share時,call_after_books_share永遠不會被調用。有命名空間時,命名約定可能有點不同。 – akoesnan