2010-08-11 34 views
0

我有试图在Rails 3应用程序使用Memcached的问题...配置Memcached的使用Rails 3

我的问题很简单:我应该如何配置Memcached的做它的工作原理和Rails 3?

感谢您的帮助!

编辑:

它看起来像对象不正确地Rails.cache.read反序列化无论:raw => true:raw => false但如果它之后Rails.cache.write

+0

这究竟是什么问题?你需要具体。请在此详细说明,以便我们帮助您。 – 2010-08-12 01:03:48

+0

@jpartogi:我自己找到了解决方案。这不是一个配置错误,但症状让我觉得这是错误的。我会发表一个解释回应。谢谢 :) – 2010-08-13 08:13:31

回答

3

好了,所以只是做反序列化工作,

完整的上下文:

序列化的对象有他的类成为一个Lib文件。 lib文件通过使用标准命名约定的rails自动加载。 Rails.cache.read是我的应用程序中的任何操作的第一步(除了第一次创建对象的init操作外)。 所以,我在其他任何操作上都有错误:undefined method for String。这是因为Rails.cache.read正在返回一个String(序列化对象)而不是我的对象实例。

说明:

它看起来像元帅不使用Rails的系统查找未声明的常量。所以,当我打电话给Rails.cache.read时,Marshal.load正在下降,而read正在返回String而没有发生任何错误。

解决方案:

我只是在我的应用程序控制器添加我的lib的load。这样,当Rails.cache.read调用Marshal.load 时,所有的常量已经加载请注意,我在开发模式下使用load而不是require,以避免在每次修改后必须重新启动服务器。

希望这会帮助别人。