我刚为我的网站安装了facebook connect,但是没有对导致错误的文件进行过编辑,我得到了这个:
rake aborted!
uninitialized constant ActiveSupport::Dependencies::Mutex
/var/www/###/Rakefile:10:in `require'
(See full trace by running task with --trace)
在我的Rakefile的第10行,你会发现:
require 'tasks/rails'
我没有编辑'tasks / rails'...这个Mutex是什么?为什么它现在会抛出这个错误?
答案 0 :(得分:1)
可能会抛出错误,因为模块ActiveSupport :: Dependencies中的某些代码想要使用Mutex类,但由于某种原因,该类无法自动加载。
有时候问题不在于代码,而是在环境中 - 就像冲突的宝石一样,我想问题是你新安装的facebook连接会搞乱系统中的某些部分
它可以帮助查看rake some:task --trace输出,以确定导致问题的文件 - 可能会查找对facebook连接库的调用,然后尝试使用该文件 - 注释掉可能的行引起你的问题,确定必须做什么。
为了进一步帮助您,需要堆栈跟踪,项目中使用的宝石列表及其版本,以及安装facebook connect时所做的步骤
答案 1 :(得分:1)
如果你无法从rails 2.3.4升级,那么在boot.rb初始化之前,需要在Rakefile中使用'thread'。
您可能还需要在config / environment.rb和脚本/服务器中要求它。
看起来像这样:
require 'thread'
require File.join(File.dirname(__FILE__), 'boot')
答案 2 :(得分:0)
您已安装Rails 3.0.5,但正在尝试使用2.3.4。虽然,如果你另外安装了2.3.4,它们不应该发生冲突,我建议你看一下使用RVM进行开发来创建隔离的开发环境(称为gemsets)。
此外,您使用的是Rails 2.3.4,它与Rubygems 1.6不兼容。我强烈建议您将rails升级到最新的2.3版本(目前为2.3.11),因为它包含许多错误和安全修复程序,以及与最新的Rubygems的兼容性。或者你可以将Rubygems降级到1.3.7,但我建议升级Rails,因为它是一个更好的长期解决方案,并包含许多重要的安全修复程序。