2010-11-23 66 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