Использование memcached в Rails-приложении с наследованием одной таблицы? - PullRequest
1 голос
/ 14 января 2009

У меня есть приложение Rails, которое использует STI для обработки различных типов пользователей, таких как:

class Admin < User
  ...
end

Я хочу использовать memcached, но продолжаю получать страшную ошибку "неизвестный класс / модуль". Я пытался предварительно загрузить все моих моделей ActiveRecord, но безрезультатно. Первый запрос работает как обычно, но первый извлекает ошибки из memcached. Я следовал этим инструкциям , но безрезультатно.

Возможно ли использование memcached с наследованием одной таблицы?

Ответы [ 3 ]

1 голос
/ 14 января 2009

Я думаю, это связано с ленивой загрузкой классов. Когда вы вызываете его из memcached, определение класса не загружается, а затем вы получаете ошибку.

Обходное решение, которое я использую:

Admin #lazily load the class definition

# do whatever that has cached Admins
0 голосов
/ 23 июня 2009

просто быстрый комментарий, я читал, что использование require_dependency 'admin' сейчас предпочтительнее, не знаю почему

require_dependency 'region'

Кроме того, я обнаружил, что в этом нет необходимости, если вы добавите

config.cache_classes = true

в ваш production.rb (или development.rb для тестирования), это, кажется, ловит все модели для кэширования

0 голосов
/ 14 января 2009

Проблема заключалась в том, что метод login_from_session restful_authentication загружался до запуска вышеупомянутого before_filter. Предварительная загрузка пользовательских классов STI в начале этого метода работала.

...