每当两个并发HTTP请求转到我的Rails应用程序时,第二个总是返回以下错误:
ApplicationController的副本已从模块树中删除但仍处于活动状态!
从那里它给出了一个无益的堆栈跟踪到“我们经历了标准服务器的东西,在ApplicationController上运行你的第一个before_filter (我检查了;它只是先运行哪个过滤器)” ,然后提供以下内容:
/home/matchu/rails/torch/vendor/rails/activesupport/lib/active_support/dependencies.rb:414:in `load_missing_constant'
/home/matchu/rails/torch/vendor/rails/activesupport/lib/active_support/dependencies.rb:96:in `const_missing'
我假设它是一个通用的答案,并没有真正说太多。
谷歌似乎告诉我,开发Rails引擎的人会遇到这种情况,但我不这样做。我所做的就是将我的Rails应用程序从2.2(2.1?)升级到2.3。导致此错误的可能原因是什么,以及如何跟踪实际发生的情况?我知道这个问题含糊不清,其他任何信息都有帮助吗?
更重要的是:我刚刚尝试在“生产”环境中进行测试运行,但错误似乎并未持续存在。那么这只会影响发展吗,我不需要太担心吗?
答案 0 :(得分:8)
这是Rails 2.3.3中的一个错误:
在2-3稳定中有一个补丁(但不完整?):
您可以通过以下几种方式解决问题:
祝你好运,这是很多人遇到的一个非常糟糕的错误。
答案 1 :(得分:1)
除了其他答案中提到的变通方法之外,我还遇到了另外两个:
我没有尝试过第二种方法,因为我首先找到了另一种解决方案,但是当然需要在避免编辑插件代码之间进行权衡,如果下载了较新版本的插件,可能会将其恢复,然后通过不必在第二个解决方案中一直重新启动开发服务器来提供开发的便利性。
答案 2 :(得分:1)
我在rails 2.3.4上面对我的新引擎遇到了同样的问题,我找到了解决方案here。
调用unloadable方法解决了我的问题。
答案 3 :(得分:0)
怪异。
尝试运行“rake rails:update”以确保配置是脚本是最新的。您可能必须根据模板应用程序检查现有的。
答案 4 :(得分:0)
我有这个错误,从记忆中它是修复它的这三件事之一。
1)我需要更新mongrel / rack 2)我有一个来自restful身份验证的环境变量,我已经从environment.rb转移到production.rb和development.rb文件中 - 将其转移回environment.rb似乎有帮助 3)will_paginate已过期
答案 5 :(得分:0)
我们在命名空间模块中调用了一个activerecord模型,该模型覆盖了“name”类方法。 Rails期望name方法返回Product :: Categories :: MilkProducts :: Firstproduct但只获得Firstproduct并抛出错误。因此,如果您收到此错误,请首先检查您是否重新定义了self.name。
源:
module Product::Categories::MilkProducts
class Base
def self.name
self.to_s.demodulize
end
end
class Firstproduct < Base
self.product = Product.first
end
end