Фильтрация вызовов Sweeper в Rails - PullRequest
0 голосов
/ 16 июня 2011

Я использую Devise для аутентификации на модели, которая сильно зависит от кэширования. Из-за операторов обновления как при входе, так и при выходе из системы очиститель кэша для этой модели вызывается при каждом входе / выходе.

Есть ли способ отфильтровать происхождение обратного вызова уборщика?

1 Ответ

1 голос
/ 16 июня 2011

Я попытался пропустить уборщик так:

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. Этот код делает очевидное предположение, что у вас нет собственной логики приложения для обновления этих полей, а только для их разработки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...