Tous,Rails 3.1 Balayeuse pour la méthode de contrôleur dans un espace de nom différent
J'essaie d'ajouter la mise en cache à mes applications Rails 3.1. Le balayeur vit dans l'espace de noms par défaut, et j'ai un contrôleur qui vit dans l'espace de noms Admin. Par exemple, j'ai BooksController dans l'espace de noms Admin, et chaque fois que la méthode de partage dans ce contrôleur, je veux balayer le cache du livre. J'ai essayé de nommer cette méthode after_books_share, mais la méthode n'est pas appelée.
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
roger, désolé, je n'ai fait/en face de l'utilisateur. Il expire donc correctement le cache lorsque le modèle est mis à jour. Cependant, le callback after_books_share n'est jamais appelé lorsque les livres/partages sont exécutés. Peut être la convention de nommage est un peu différente quand il y a un espace de noms. – akoesnan