我有一个使用 STI 处理不同类型用户的 Rails 应用程序,例如:
class Admin < User
...
end
我想使用 memcached,但我不断收到可怕的“未知类/模块”错误。我已经尝试预加载我所有的 ActiveRecord 模型,但无济于事。第一个请求正常工作,但第一个从 memcached 错误中提取出来。我也按照这些说明无济于事。
单表继承是否可以使用 memcached?
我有一个使用 STI 处理不同类型用户的 Rails 应用程序,例如:
class Admin < User
...
end
我想使用 memcached,但我不断收到可怕的“未知类/模块”错误。我已经尝试预加载我所有的 ActiveRecord 模型,但无济于事。第一个请求正常工作,但第一个从 memcached 错误中提取出来。我也按照这些说明无济于事。
单表继承是否可以使用 memcached?
我认为这是由于类的延迟加载。当您从 memcached 调用它时,未加载类定义,然后您会收到错误消息。
我使用的解决方法是:
Admin #lazily load the class definition
# do whatever that has cached Admins
问题是在上述 before_filter 运行之前,restful_authentication 的 login_from_session 方法被加载了。在此方法的顶部预加载 STI 用户类有效。
只是一个简短的评论,我读过现在首选使用 require_dependency 'admin',不知道为什么
require_dependency 'region'
另外,我发现如果您添加,这是不必要的
config.cache_classes = true
到您的 production.rb (或 development.rb 用于测试),这似乎捕获了所有用于缓存的模型