Решить проблему с областью действия классов в контроллере rails - PullRequest
0 голосов
/ 23 ноября 2010

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

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

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

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

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 23 ноября 2010

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

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

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

0 голосов
/ 23 ноября 2010

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

$memcached = Memcached.new 'localhost:11211'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...