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
무엇이 잘못 되었습니까? 어떻게 고치나요?
답변
이것은 Rails 2.3.8과 최신 버전의 RubyGem과 호환되지 않습니다. 최신 2.3 버전으로 업그레이드하십시오 (오늘 현재 2.3.11).
답변
Ruby on Rails 2.3.11로 업그레이드 할 수없고 (더글라스의 대답으로 확장 thread
하려면) 맨 위에 있어야합니다 boot.rb
. 예를 들면 다음과 같습니다.
require 'thread'
# Don't change this file!
# Configure your app in config/environment.rb and config/environments/*.rb
...
답변
RubyGems 1.6.0 이상 및 Rails <2.3.11에서 발생하므로 RubyGems를 1.5.3으로 다운 그레이드하여이 문제를 해결할 수있었습니다.
gem update --system 1.5.3
이전 버전으로 이전 버전으로 다운 그레이드하고 1.5.3으로 업데이트하려는 경우 해당 버전을 실행하려고 할 때 다음을 얻을 수 있습니다.
Updating RubyGems
ERROR: While executing gem ... (RuntimeError)
No gem names are allowed with the --system option
해당 오류가 발생하면 버전을 지정한 다음 다시 다운 그레이드 할 수 있도록 업데이트하십시오.
gem update --system
gem update --system 1.5.3
답변
답변
레일과 같이 버전을 동일하게 유지하려면 2.3.8이고 보석 버전이 최신 버전입니다. 이 솔루션을 최신 gem과 함께 Rails2.x와 함께 사용할 수 있습니다 . 이 부분에서 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
답변
레일 3으로 작업 한 후 오래된 레일 2.3.5 프로젝트를 시작하려고 할 때 많은 경우 에이 문제에 직면했습니다. 내 문제를 해결하려면 루비 젬을 1.4.2 버전으로 업데이트해야합니다.
sudo gem update --system 1.4.2
답변
Radiant CMS를 사용하는 경우 간단히 추가하십시오
require 'thread'
의 상단으로 config/boot.rb
.
(아론과 nathanvda의 답변에 대한 쿠도스)