Я попытался пропустить уборщик так:
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 - это два поля, которые обновляются devise во время sign_in и sign_out. Этот код делает очевидное предположение, что у вас нет собственной логики приложения для обновления этих полей, а только для их разработки.