我使用Devise作为Rails中的身份验证解决方案,并且我有一个缓存的片段:recent_users。
我希望这个片段在注册、更改或删除新用户时过期,因此我输入了(手动创建的) users_controller.rb
class UsersController < ApplicationController
cache_sweeper :user_sweeper, :only => [:create, :update, :destroy]
...但我的片段不会在新的创建或更改时过期。
我的user_sweeper包含基本的处方
class UserSweeper < ActionController::Caching::Sweeper
observe User
def after_save(user)
expire_cache(user)
end
def after_destroy(user)
expire_cache(user)
end
private
def expire_cache(user)
expire_fragment :recent_users
end
end我做错了什么?
发布于 2010-08-17 20:12:17
问题解决了!
我执行了以下步骤,一切都正常了:
$ mkdir app/controllers/users
$ touch app/controllers/users/registrations_controller.rb在registrations_controller.rb中
class Users::RegistrationsController < Devise::RegistrationsController
cache_sweeper :user_sweeper, :only => [:create, :update, :destroy]
end问题是Devise中的注册是一个单独的控制器。
发布于 2011-04-08 22:25:00
将此代码放入applications_controller.rb
class ApplicationController < ActionController::Base
cache_sweeper :user_sweeper, :only => [:create, :update, :destroy]
...https://stackoverflow.com/questions/3502162
复制相似问题