【问题标题】:Using memcached in Rails app with Single Table Inheritance?在具有单表继承的 Rails 应用程序中使用 memcached?
【发布时间】:2010-10-01 09:17:42
【问题描述】:
我有一个 Rails 应用程序,它使用 STI 来处理不同类型的用户,例如:
class Admin < User
...
end
我想使用 memcached,但我不断收到可怕的“未知类/模块”错误。我尝试预加载我的 ActiveRecord 模型的所有,但无济于事。第一个请求正常工作,但第一个从 memcached 错误中提取出来。我也关注了these instructions,也无济于事。
单表继承是否可以使用 memcached?
【问题讨论】:
标签:
ruby-on-rails
memcached
single-table-inheritance
【解决方案1】:
我认为这是由于 lazy loading 的课程。当您从 memcached 调用它时,未加载类定义,然后您会收到错误消息。
我使用的解决方法是:
Admin #lazily load the class definition
# do whatever that has cached Admins
【解决方案2】:
问题是restful_authentication 的login_from_session 方法是在前面提到的before_filter 运行之前加载的。在此方法顶部预加载 STI 用户类有效。
【解决方案3】:
只是一个简短的评论,我读到现在首选使用 require_dependency 'admin',不知道为什么
require_dependency 'region'
另外,我发现如果你添加,这是不必要的
config.cache_classes = true
到您的 production.rb(或 development.rb 用于测试),这似乎捕获了所有用于缓存的模型