Каждый раз, когда я захожу на страницу, прошедшую проверку подлинности, я замечаю, что она выдавала оператор SQL:
Пользовательская нагрузка (0,2 мс) SELECT users
. * ОТ users
ГДЕ (users
. id
)= 1) LIMIT 1
(кстати, я использую Rails 3 .. поэтому cache_money кажется решением, и, несмотря на большой объем поиска, я не нашел замены).
Я пыталсямного переопределений в пользовательской модели, и кажется, что вызывается только find_by_sql.Который получает строку всего оператора SQL.Кажется, что-то интуитивно понятное, например find_by_id или find, не вызывается.Я «могу» переопределить этот метод и получить идентификатор пользователя и сделать разумную систему кеша из этого - но это довольно уродливо.
Я также попытался переопределить authenticate_user, который я могу перехватить одну попытку SQL, но затем вызывает current_userКажется, пытается снова.
Просто, мои пользовательские объекты меняются редко, и это печальное состояние - продолжать работать с БД для этого вместо решения memcache.(предположим, что я готов взять на себя всю ответственность за аннулирование указанного кэша с помощью: after_save как части, но не всего этого решения)