我在gem中定义了一大堆模型,我将其捆绑到一个Rails项目中。我希望能够使用app / models中的文件中的代码对这些模型类进行monkeypatch,并像往常一样在每个请求上重新加载app / models / *。
我实际上解决了上述问题。我现在的问题是该解决方案使我的应用程序缓慢 - 屏幕在开发模式下加载30-40秒与之前的一两秒。这是我现在在初始化程序中得到的内容:
model_init = lambda{ path = File.expand_path(File.dirname(__FILE__) + "../../../app/models") Dir.glob("#{path}/*.rb").each do |path| require path end } ActionDispatch::Callbacks.to_prepare(&model_init)
任何人都可以提供有关我如何加快速度的信息吗?我在Rails 3.1.3上,但是如果3.2.0-rc1中的active_reload可以解决这个问题,我很乐意升级。在此先感谢您的帮助!
答案 0 :(得分:1)
Rails 3.1中存在一个已知错误 - 每个资产都会根据请求重新编译。因此,如果您的应用有很多资产,那么您在开发模式下的响应会很慢。这已在3.2中修复。