代码之家  ›  专栏  ›  技术社区  ›  matsko

防止Rails2/3缓存Lib/类

  •  9
  • matsko  · 技术社区  · 15 年前

    有人知道如何指示rails不缓存lib文件夹中包含的类吗?

    2 回复  |  直到 13 年前
        1
  •  9
  •   Zargony    15 年前

    所谓“缓存类”,我想您的意思是在处理新请求之前,应用程序目录中的源文件会自动在开发环境中重新加载?

    这与缓存无关,Ruby的正常行为是,只要进程运行,就一次又一次地读取和解析源文件。Rails(实际上是ActiveSupport::Dependencies)提供了一种在处理请求之前重新加载整个代码的机制。在开发环境中,这是很有用的,因为您不希望每次更改代码都重新启动本地Web服务器。在生产环境中,这将严重影响性能,因此被关闭。

    unloadable

    class MyClass
      unloadable # mark this class as reloadable before a request is processed
    
      # …
    end
    

    注意,不是每个班级都能很好地处理卸货问题。只要在一个源文件中定义类,并由Rails的自动加载机制找到和加载,就可能是好的。但是如果你在其他地方重新打开你的类来monkeypatch它可能会遇到麻烦,因为自动加载不会捕捉到这个。

        2
  •  1
  •   matsko    13 年前

    也可以通过不使用 lib/ app/helpers

    推荐文章