2010-11-23 65 views
0

我遇到了rails控制器无法找到类定义的问题,因为它不正确地解析范围。在rails控制器中解决类的范围问题

具体而言,在我的ApplicationController:

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

不起作用。我得到的错误:

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

Rails认为MemCache类应该在某种程度上在ApplicationController的范围内。

任何人都有一个想法,为什么?

此外,这是我继承的代码。将memcache连接放入初始化程序是否更好?如果是这样,我如何从Controller连接到它?

回答

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