2010-11-23 2 views
0

У меня проблема с контроллером рельсов, который не может найти определение класса, потому что он неправильно разрешает область.Устранить проблему с объемом классов в контроллере rails

В частности, в моем ApplicationController:

require 'memcache' 
$memcache = MemCache.new("localhost:11211") 

не работает. Я получаю ошибку:

ActionController::RoutingError (uninitialized constant ApplicationController::MemCache): 

Rails считает, что класс MemCache должен быть как-то в рамках ApplicationController.

У кого-нибудь есть идея, почему?

Кроме того, это код, который я унаследовал. Лучше ли использовать соединение memcache в инициализаторе? Если да, то как мне подключиться к нему с контроллера?

ответ

2

Лучше использовать memcache_client gem, который создает для вас удобную оболочку для memcache. Затем вы можете получить доступ к хранилищу memcache как хэш, называемый CACHE, и не беспокоиться обо всех материалах подключения.

https://github.com/mperham/memcache-client

Хотя, глядя на этой странице он выглядит как он был заменен на что-то под названием «Далли». Дайте это.

+0

Спасибо за эту записку. Я просмотрел его, и это определенно похоже на вариант. Но я не хочу повторно использовать весь доступ к memcache в приложении прямо сейчас, я просто хочу, чтобы это работало. Это работает некоторое время, но когда я делаю локальную установку на своей машине, это не так. – 2010-11-23 15:56:55

0

Это потому, что MemCache не существует, вам нужно использовать Memcached

$memcached = Memcached.new 'localhost:11211' 
+0

Это работает некоторое время. Плюс я могу запустить его из `console`, и он работает. – 2010-11-23 15:54:25

Смежные вопросы