我在严重依赖缓存的模型上使用Devise进行身份验证。由于登录和注销都有更新语句,因此每次登录/注销时都会调用此模型的缓存清理程序。
有没有办法过滤清扫程序回调的来源?
答案 0 :(得分:1)
我试着像这样跳过清扫车:
class ModelSweeper < ActionController::Caching::Sweeper
def after_update(model)
unless model.current_sign_in_at_changed? or model.last_sign_in_at_changed?
expire_cache_for(model)
end
end
private
def expire_cache_for(model)
#some expire cache code
end
end
current_sign_in_at和last_sign_in_at是在sign_in和sign_out期间由设计更新的两个字段。这段代码明显假设您没有自己的应用程序逻辑来更新这些字段,只设计更新它们。