2009-01-14 55 views
1

我有一个使用STI来处理不同类型的用户,比如Rails应用程序:在带单表继承的Rails应用中使用memcached?

class Admin < User 
    ... 
end 

我想使用memcached的,但我不断收到可怕的“未知的类/模块”的错误。我试过预加载所有我的ActiveRecord模型无济于事。第一个请求正常工作,但第一次从memcached中取出错误。我跟着these instructions也无济于事。

正在使用memcached单表继承可能吗?

回答

1

我认为这是由于lazy loading的类。当你从memcached中调用它时,类定义没有被加载,然后你得到错误。

我使用的解决方法是:

Admin #lazily load the class definition 

# do whatever that has cached Admins 
0

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

0

只是一个快速评论,我读过,使用require_dependency“管理员”现在首选,不知道为什么

require_dependency 'region' 

而且,我发现,如果添加这是不必要的

config.cache_classes = true 

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