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

StackOverflow https://stackoverflow.com/questions/443187

Вопрос

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

class Admin < User
  ...
end

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

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

Это было полезно?

Решение

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

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

Admin #lazily load the class definition

# do whatever that has cached Admins

Другие советы

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

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

require_dependency 'region'

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

config.cache_classes = true

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top