未初始化的常量 ActiveSupport::Dependencies::Mutex (NameError) - 如何解决?

4

可能重复:
未初始化常量ActiveSupport :: Dependencies :: Mutex(NameError)

嘿,我在网上看到了很多关于这个问题的讨论...有人成功解决了吗?

我的应用程序是 RAILS_GEM_VERSION ='2.3.5' unless defined? RAILS_GEM_VERSION

日志输出

/Users/tjs/.rvm/gems/ruby-1.8.7-p352@rails2/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:55: uninitialized constant ActiveSupport::Dependencies::Mutex (NameError)
from /Users/tjs/.rvm/rubies/ruby-1.8.7-p352/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:55:in `gem_original_require'
from /Users/tjs/.rvm/rubies/ruby-1.8.7-p352/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:55:in `require'
from /Users/tjs/.rvm/gems/ruby-1.8.7-p352@rails2/gems/activesupport-2.3.5/lib/active_support.rb:56
from /Users/tjs/.rvm/rubies/ruby-1.8.7-p352/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:55:in `gem_original_require'
from /Users/tjs/.rvm/rubies/ruby-1.8.7-p352/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:55:in `require'
from /Users/tjs/.rvm/gems/ruby-1.8.7-p352@rails2/gems/rails-2.3.5/lib/commands/server.rb:1
from /Users/tjs/.rvm/rubies/ruby-1.8.7-p352/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:55:in `gem_original_require'
from /Users/tjs/.rvm/rubies/ruby-1.8.7-p352/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:55:in `require'
from script/server:4

我尝试在environment.rb、script/sever和rakefile中引入线程,但这只会使日志爆炸...
我使用的是兼容的1.8.7版本的rvm。但我对rvm还比较新,所以不太确定是否配置正确。
我有3个正在运行rails 2.x的应用程序,所有应用程序都存在这个问题。

另外,如果我运行gem -v,它会显示1.8.11,这可能意味着我使用了错误的rvm... - TJ Sherrill
我已经查看了那个问题和答案,需要的 'thread' 不起作用。我应该执行 rvm install 1.5.3 吗? - TJ Sherrill
4个回答

4

这个链接提供的步骤,让应用程序再次正常运行。

感谢所有的帖子。


3

在您的 "boot.rb" 文件中添加 "require 'thread'" 语句。

require 'thread'
require File.join(File.dirname(__FILE__), 'boot')

我已经尝试过了,但它并没有解决问题。 - TJ Sherrill

1

您只需要使用rbenv https://github.com/jamis/rbenv-gemset或rvm创建一个新的gemset,并安装rubygems-update 1.4.2即可。

gem install -v 1.4.2 rubygems-update
gem update --system 1.4.2

干杯


0

另一个对我有效的解决方案是通过设置环境变量来使用更高次版本的Rails:

export RAILS_GEM_VERSION=2.3.12

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接