Ruby ApplicationController的副本已从模块树中删除,但仍处于活动状态
每当两个并发HTTP请求转到my Rails应用程序时,第二个总是返回以下错误: ApplicationController的副本已从模块树中删除,但仍处于活动状态 从这里开始,它给出了一个无用的堆栈跟踪,“我们检查了标准服务器的内容,在ApplicationController上运行了第一个过滤器之前运行了您的第一个过滤器(我检查了;这只是哪个过滤器先运行)”,然后提供以下内容: /home/matchu/rails/torch/vendor/rails/activesupport/lib/active\u support/dependencies.rb:414:in `加载\缺少\常数' /home/matchu/rails/torch/vendor/rails/activesupport/lib/active\u support/dependencies.rb:96:in `const_失踪' 我假设这是一个普通的回答,并没有说太多 谷歌似乎告诉我,开发Rails引擎的人会遇到这种情况,但我没有这样做。我所做的只是将Rails应用程序从2.2(2.1?)升级到2.3 这个错误的可能原因是什么?我如何才能追踪到底发生了什么?我知道这个问题很模糊,所以其他信息会有帮助吗 更重要的是:我刚刚尝试在“生产”环境中进行测试运行,错误似乎不会持续。那么,这只会影响开发吗?我不需要太担心吗?奇怪Ruby ApplicationController的副本已从模块树中删除,但仍处于活动状态,ruby,rubygems,ruby-on-rails-plugins,ruby-on-rails-2,Ruby,Rubygems,Ruby On Rails Plugins,Ruby On Rails 2,每当两个并发HTTP请求转到my Rails应用程序时,第二个总是返回以下错误: ApplicationController的副本已从模块树中删除,但仍处于活动状态 从这里开始,它给出了一个无用的堆栈跟踪,“我们检查了标准服务器的内容,在ApplicationController上运行了第一个过滤器之前运行了您的第一个过滤器(我检查了;这只是哪个过滤器先运行)”,然后提供以下内容: /home/matchu/rails/torch/vendor/rails/activesupport/lib/a
正在尝试运行“rake rails:update”以确保配置脚本是最新的。您可能需要对照模板应用程序检查现有的错误。我有此错误,从内存中可以看出,这是修复此错误的三种方法之一 1) 我需要更新mongrel/rack 2) 我从restful身份验证中得到了一个环境变量,我已经从environment.rb迁移到production.rb和development.rb文件中——将它移回environment.rb似乎有帮助
3) will_paginate已经过时了这是Rails 2.3.3中的一个错误:
- 回到Rails 2.3.2,等待2.3.4的发布,可能在8月底。2.3.3有几个不好的问题,所以这可能是最好的
- 该问题不应发生在生产模式下,也不应发生在服务器下的开发模式下。如果您在生产模式下的谷歌引擎上遇到这个问题,那么补丁是您唯一的希望。如果它仅处于开发模式,则可以使用精简而不是混合运行本地服务器
- 如果是谷歌引擎,你可以离开谷歌引擎,以另一种方式托管你的应用程序。不过,这似乎需要做很多工作
祝你好运,这是很多人遇到的一个非常糟糕的bug。除了其他答案中提到的解决方法外,我还遇到了另外两个:
我没有尝试过第二种方法,因为我首先找到了另一种解决方案,但在避免编辑插件代码(如果下载了更新版本的插件代码,则可能会恢复)之间当然有一个折衷,在第二种解决方案中,不必一直重新启动开发服务器,从而使开发更加容易。我在rails 2.3.4上的新引擎也遇到了同样的问题,我找到了解决方案
调用方法解决了我的问题。我们调用了名称空间模块中的activerecord模型,该模块覆盖了“name”类方法。Rails希望name方法返回Product::Categories::MilkProducts::Firstproduct,但只获取Firstproduct并抛出错误。因此,如果出现此错误,请首先检查是否重新定义了self.name
- Firstproduct.method(:name).owner应该是模块
- Firstproduct.method(:name).source\u位置
module Product::Categories::MilkProducts
class Base
def self.name
self.to_s.demodulize
end
end
class Firstproduct < Base
self.product = Product.first
end
end
模块产品::类别::乳制品
阶级基础
def self.name
自我解调
结束
结束
class Firstproduct
rake任务没有输出=/Damn。我以前从未见过这种情况,我明白你所说的引擎导致错误的意思。希望其他人能帮忙。对不起的:(哦,哇,很高兴知道不是我。我想我会坐下来等待,因为这个应用程序将在一个月左右部署,但即使它没有发布,升级对我的理智来说才是真正重要的。感谢你让我知道我不是唯一一个!使用WEBrick、瘦服务器或Mongrel都不能解决问题。我已经尝试了所有的方法。)但问题仍然存在。Shree我知道避免混血是一个推荐的修复方法,适用于我认识的几个人。你在Rails 2.3.3上吗?你确定这是同一个问题吗?