2010-08-17 51 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] 
...