我有一个Rails应用程序,它使用STI来处理不同类型的用户,例如:
class Admin < User
...
end
我想使用memcached,但我不断收到可怕的“未知类/模块”错误。我已经尝试预装所有我的ActiveRecord模型无济于事。第一个请求正常工作,但第一个请求来自memcached错误。我跟着these instructions也无济于事。
使用单表继承可以使用memcached吗?
答案 0 :(得分:1)
我认为这是由于课程的lazy loading。当你从memcached调用它时,没有加载类定义,然后你得到错误。
我使用的解决方法是:
Admin #lazily load the class definition
# do whatever that has cached Admins
答案 1 :(得分:0)
问题是在运行上述before_filter之前正在加载restful_authentication的login_from_session方法。在此方法的顶部预加载STI用户类是有效的。
答案 2 :(得分:0)
只是一个快速评论,我读过现在首选使用require_dependency'admin',不知道为什么
require_dependency 'region'
此外,我发现如果你添加
,这是不必要的config.cache_classes = true
到你的production.rb(或者用于测试的development.rb),这似乎抓住了所有用于缓存的模型