Я пытаюсь получить memcached и плагин Interlock, работающий с новым приложением rails. Странно то, что оба они отлично работают в другом приложении на той же машине, и я не могу понять разницу, которая останавливает это приложение. Новое приложение - это rails 2.3.4, а старое - 2.2.2, если это важно.
Когда приложение запускается, я получаю предупреждение от блокировки:
`install_memcached':Interlock::ConfigurationError: 'memcache-client' client requested but not installed. Try 'sudo gem install memcache-client'.
Теперь у меня установлен memcache-клиент:
$> gem list | grep memcache
memcache-client (1.7.8)
гем находится в /var/lib/gems/1.8, который находится в моей переменной GEM_PATH.
В дальнейших исследованиях вышеупомянутая ошибка возникает из-за блокировки, когда она ссылается на класс MemCache, который не существует и вызывает ошибку «анонимный модуль». Итак, в конечном итоге, проблема в том, что MemCache не загружен. У меня есть memcached.yml в моей папке конфигурации (ниже), однако. Я застрял - любой совет кто-нибудь?
#contents of config/memcached.yml
defaults:
namespace: millionaire
#sessions: true
sessions: false
client: memcache-client
with_finders: true
development:
servers:
- 127.0.0.1:11211
production:
servers:
- 127.0.0.1:11211
РЕДАКТИРОВАТЬ - решено
Проблема заключалась в том, как я определял гем для использования: мне пришлось поместить это в мой файл config / environment.rb:
config.gem "memcache-client",: version => '1.5.0',: lib => "memcache"
Это кажется необходимым, когда я использую гемы, где папка lib не называется lib или основной файл в папке lib не имеет того же имени, что и гем: мне нужно указать имя lib / file с помощью опция: lib.
В некотором роде все еще смущен, но, по крайней мере, это работает.