代码之家  ›  专栏  ›  技术社区  ›  Matt Darby

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

  •  1
  • Matt Darby  · 技术社区  · 16 年前

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

    class Admin < User
      ...
    end
    

    我想使用memcached,但我总是遇到可怕的“未知类/模块”错误。我试过预加载 全部的 我的激活记录模型无效。第一个请求正常工作,但第一个请求从memcached错误中拉出。我已经追随 these instructions 也无济于事。

    单表继承是否可以使用memcached?

    3 回复  |  直到 15 年前
        1
  •  1
  •   DanSingerman    16 年前

    我认为这是由于 lazy loading 在班级里。当您从memcached调用它时,类定义没有被加载,然后您会得到错误。

    我使用的解决方法是:

    Admin #lazily load the class definition
    
    # do whatever that has cached Admins
    
        2
  •  0
  •   Matt Darby    16 年前

    问题是,在前面提到的运行_过滤器之前,正在加载restful_authentication的login_from_session方法。在这个方法的顶部预加载sti用户类是有效的。

        3
  •  0
  •   Brian Armstrong    15 年前

    只是一个简短的评论,我已经读到现在最好使用“需要依赖”的“管理”,不知道为什么

    require_dependency 'region'
    

    另外,我发现如果你加上

    config.cache_classes = true
    

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