authlogic требует пользователя

Я использую authlogic для аутентификации, и для некоторых действий требуется вошедший в систему пользователь, который контролируется через фильтр before_filter, как показано ниже. Я также использую friendly_id в модели пользователя, и внутри всего, что есть в модели пользователя, есть запросы к таблице слагов friendly_id. Это приводит как минимум к 3 запросам для определенного просмотра страницы, и это происходит довольно часто.

Есть ли способ поддерживать эту функциональность без выполнения этих запросов каждый раз?

Я также использую memcached в качестве хранилища объектов. Это возможно? это хорошо работает с authlogic?

def require_user
        unless current_user
            store_location
            flash[:notice] = "You must be logged in to access this page"
            redirect_to new_user_sessions_url
            return false
        end
    end

person badnaam    schedule 12.10.2010    source источник


Ответы (1)


Я бы не стал слишком беспокоиться об этом. Rails довольно умен и будет кэшировать запрос, поэтому в основном он будет запускать его только один раз. Следите за своими файлами журналов и посмотрите, сможете ли вы найти рассматриваемые запросы, скорее всего, они будут иметь (кэш) предварительное предположение о том, что результаты запроса все еще находятся в кеше.

person Maran    schedule 12.10.2010
comment
Я вижу что-то вроде .. [DEBUG 12-10-2010 13:52:37] Пользовательская загрузка (0,5 мс) SELECT * FROM users WHERE (users.id = '9') LIMIT 1. Однако кеш не добавлен, это от мои производственные журналы. - person badnaam; 13.10.2010
comment
Хорошо, скажем, он не кэшируется, как вы можете видеть, для выполнения этого запроса потребовалось 0,5 мс. Не похоже, что вы получаете значительное улучшение скорости на этом - person Maran; 13.10.2010