1

我有一个使用 STI 处理不同类型用户的 Rails 应用程序,例如:

class Admin < User
  ...
end

我想使用 memcached,但我不断收到可怕的“未知类/模块”错误。我已经尝试预加载我所有的 ActiveRecord 模型,但无济于事。第一个请求正常工作,但第一个从 memcached 错误中提取出来。我也按照这些说明无济于事。

单表继承是否可以使用 memcached?

4

3 回答 3

1

我认为这是由于类的延迟加载。当您从 memcached 调用它时,未加载类定义,然后您会收到错误消息。

我使用的解决方法是:

Admin #lazily load the class definition

# do whatever that has cached Admins
于 2009-01-14T14:46:25.320 回答
0

问题是在上述 before_filter 运行之前,restful_authentication 的 login_from_session 方法被加载了。在此方法的顶部预加载 STI 用户类有效。

于 2009-01-14T15:14:27.977 回答
0

只是一个简短的评论,我读过现在首选使用 require_dependency 'admin',不知道为什么

require_dependency 'region'

另外,我发现如果您添加,这是不必要的

config.cache_classes = true

到您的 production.rb (或 development.rb 用于测试),这似乎捕获了所有用于缓存的模型

于 2009-06-23T19:15:28.967 回答