rails中的cache_sweeper函数

时间:2015-02-10 07:21:17

标签: ruby-on-rails

这段代码的目的是什么?我在lib / act_as_audited / audit_sweeper.rb下的audited-1.1.1插件中找到了它

class AuditSweeper < ActionController::Caching::Sweeper #:nodoc:
    def before_create(audit)
        audit.user ||= current_user
    end

    def current_user
        controller.send :current_user if controller.respond_to?(:current_user, true)
    end
end

 ActionController::Base.class_eval do
   extend CollectiveIdea::ActionController::Audited
   cache_sweeper :audit_sweeper
end
Audit.add_observer(AuditSweeper.instance)

cache_sweeper用于什么?

1 个答案:

答案 0 :(得分:0)

cache_sweeper负责在任何对象更改时使缓存过期。就像你已经缓存了一个用户并假设你更新用户的配置文件一样,那么旧的缓存应该会过期并且应该执行新的写操作。您可以在APIDock上找到更多详细信息:

http://apidock.com/rails/ActionController/Caching/Sweeping

编辑:

这就像expires_in一样,我们在这个时间内定义它应该到期的时间。您可以在此处指定需要过期的操作,例如edit, update, destroy