Sok*_*iev 238 compatibility rubygems ruby-on-rails
当我想创建Ruby on Rails项目时,我会收到以下消息.
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:55: uninitialized constant ActiveSupport::Dependencies::Mutex (NameError)
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
from /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support.rb:57
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
from /usr/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/rails_generator.rb:31
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
from /usr/lib/ruby/gems/1.8/gems/rails-2.3.8/bin/rails:15
from /usr/bin/rails:19:in `load'
from /usr/bin/rails:19
Run Code Online (Sandbox Code Playgroud)
出了什么问题?我该如何解决?
Aar*_*on 211
如果您无法升级到Ruby on Rails 2.3.11(并扩展douglasr的答案),则thread必须在顶部boot.rb.例如:
require 'thread'
# Don't change this file!
# Configure your app in config/environment.rb and config/environments/*.rb
...
Run Code Online (Sandbox Code Playgroud)
Gar*_*ver 158
我能够通过将RubyGems降级到1.5.3来解决这个问题,因为它发生在RubyGems 1.6.0+和Rails <2.3.11中:
gem update --system 1.5.3
Run Code Online (Sandbox Code Playgroud)
如果您之前已降级到更早版本并希望更新到1.5.3,则在尝试运行时可能会得到以下内容:
Updating RubyGems
ERROR: While executing gem ... (RuntimeError)
No gem names are allowed with the --system option
Run Code Online (Sandbox Code Playgroud)
如果您收到该错误,请更新,以便它允许您指定版本,然后再次降级:
gem update --system
gem update --system 1.5.3
Run Code Online (Sandbox Code Playgroud)
dou*_*asr 35
您也可以通过在应用程序中要求"线程"来解决此问题:
require 'thread'
Run Code Online (Sandbox Code Playgroud)
根据RubyGems 1.6.0 发行说明.
aru*_*agw 24
如果你想保持你的版本相同像rails将是2.3.8并且gem版本将是最新的.您可以使用此解决方案使用Rails2.x的最新gem.在boot.rb文件和environment.rb文件中进行了一些更改.
require 'thread'在顶部的boot.rb文件中.
并在environment.rb文件中添加以下代码在初始化程序块上方.
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.3.7')
module Rails
class GemDependency
def requirement
r = super
(r == Gem::Requirement.default) ? nil : r
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
Tan*_*a R 11
当我在使用rails 3>之后尝试启动旧的rails 2.3.5项目时,我在许多场合遇到了这个问题.在我解决问题的情况下,我必须对版本1.4.2进行rubygems更新,这是:
sudo gem update --system 1.4.2
Run Code Online (Sandbox Code Playgroud)
如果您使用的是Radiant CMS,只需添加即可
require 'thread'
Run Code Online (Sandbox Code Playgroud)
到顶部config/boot.rb.
(感谢Aaron和nathanvda的回应.)
| 归档时间: |
|
| 查看次数: |
113340 次 |
| 最近记录: |