Настройте Memcached с Rails 3 - PullRequest
0 голосов
/ 11 августа 2010

У меня возникают проблемы при попытке использовать Memcached в приложении Rails 3 ...

Мой вопрос довольно прост: Как мне настроить Memcached, чтобы он работал с Rails 3?

Спасибо за вашу помощь!

Edit:

Похоже, что объект не правильно десериализован Rails.cache.read независимо от того, :raw => true или :raw => false, но десериализация работает, если она выполняется сразу после Rails.cache.write

1 Ответ

3 голосов
/ 13 августа 2010

Хорошо,

Полный контекст:

Сериализованный объект имеет свой класс в файлах Lib.Файлы lib автоматически загружаются rails с использованием стандартного соглашения об именах.Rails.cache.read был первым шагом любых действий в моем приложении (кроме действия init, которое создает объект в первый раз).Итак, у меня была ошибка при любом другом действии: undefined method for String.Это было потому, что Rails.cache.read возвращал мне строку (сериализованный объект) вместо моего экземпляра объекта.

Объяснение:

Похоже, маршал не использует систему Rails для поиска Undeclaredконстанты.Поэтому, когда я звонил Rails.cache.read, Marshal.load падал, а read возвращал String без каких-либо ошибок.

Решение:

Я просто добавил load моей библиотеки в контроллере приложения.Таким образом, все константы уже загружены, когда Rails.cache.read вызывает Marshal.load Обратите внимание, что я использовал load вместо require в режиме разработки, чтобы избежать перезапуска сервера после каждой модификации.

Надеюсь, это кому-нибудь поможет.

...