【问题标题】: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 用于测试),这似乎捕获了所有用于缓存的模型

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-07
          • 1970-01-01
          • 1970-01-01
          • 2014-11-16
          相关资源
          最近更新 更多