2010-08-17 52 views
1

我在Devils中使用Devise作为身份验证解决方案,并且我有一个缓存片段:recent_users。无法在Ruby on Rails中使用默认方法过期缓存片段+ Devise

我想,当一个新的用户注册,更改或删除此片段到期,所以我把我的(手动创建)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 

我在做什么错?

回答

1

问题解决了!

我遵循了这一步骤,一切工作:

$ 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 

问题是,登记数字设计是一个单独的控制器。

+0

我还需要遵循一些这里的方向将这个: http://devise.plataformatec.com.br/#getting-started/configuring-controllers – vlasits 2013-09-19 19:56:33

0

在applications_controller.rb

class ApplicationController < ActionController::Base 
    cache_sweeper :user_sweeper, :only => [:create, :update, :destroy] 
...