在单表继承的Rails应用程序中使用memcached?

时间:2009-01-14 14:39:33

标签: ruby-on-rails memcached single-table-inheritance

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

class Admin < User
  ...
end

我想使用memcached,但我不断收到可怕的“未知类/模块”错误。我已经尝试预装所有我的ActiveRecord模型无济于事。第一个请求正常工作,但第一个请求来自memcached错误。我跟着these instructions也无济于事。

使用单表继承可以使用memcached吗?

3 个答案:

答案 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),这似乎抓住了所有用于缓存的模型