2010-12-03 3 views
5

나는 다음과 같은 입력 : 내 environment.rb 파일에서나는 보석에 보석을 추가했지만 여전히 보석이 누락되었다고 말하고 있는가?

gem install omniauth 

을, 나 또한이 :

config.gem "omniauth" 

을 그러나, 나는 이러한 오류를 얻을 :

no such file to load -- omniauth/core 
Missing these required gems: 
    omniauth 

내가 혼란 스러워요을 : 나는 레이크 보석을해라 : 설치하고 오류를 얻지 마라 (나는 메시지를 다시받지 못한다). 하지만 스크립트/서버를 실행하려고하면 레이크 보석을 설치해야한다고 말합니다 : 설치하십시오!

내가으로 environment.rb에서 config.gem "omniauth"를 제거하면, 나는이 얻을 :

c:/Ruby187/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:443:in `load_missing_constant': unin 
itialized constant OmniAuth (NameError) 

답변

3

지금 그 3 번 들러를 사용하는 레일, 당신은 당신이 액세스를 원하는 그것을 명시 적으로 만들 필요가 귀하의 응용 프로그램에서 특정 보석.

gem 'omniauth' 

다음 프로젝트 디렉토리에 bundle install를 실행, 당신은 갈 수 있어야한다 :이 작업을 수행하려면이 줄을 추가 (프로젝트의 루트 디렉토리에) 당신의 Gemfile로 이동합니다. bundle install은 모든 보석과 종속물이 현재 시스템에 설치되어 있는지 확인합니다. 행운을 빕니다!

+0

안녕하세요. 여전히 2.3.x입니다. 3로 마이그레이션하기가 너무 어렵습니다 ..... 제안 사항이 있습니까? – Angela

+0

이것은 정말로 옳은 대답은 아니지만 가까운 것입니다 : 나는 Rails 2.3.x 응용 프로그램에 bundler를 설치했는데 이것이 더 나은 것 같습니다. – Angela

1

제안 :

는 "보석 목록"을 수행하고 omniauth이가 나열되어 있는지 확인합니다. "gem env"를 실행하여 보석이 설치된 위치와 보석 경로의 일부인지 확인하십시오.

죄송합니다. 지금은 도움이 될 수 없습니다 ..

+0

예 .... 나열되어 있습니다 .... :( – Angela

1

이상한. familliar하지 자신의 OAuth하지만 두 가지 확인할 수로 :

먼저 당신은 당신의 응용 프로그램 루트에

rake gems:install 

을 시도 할 수 있습니다. 모든 종속성이 제대로 설치되면 아무런보고도해서는 안됩니다.

둘째, 당신은 콘솔로 가서

require 'omniauth' 

require 'omniauth/core' 

모듈로드를합니까 입력 할 수 있습니다? 콘솔에서 사용할 수 있습니까? 서버를 시작할 때 모듈 또는 종속성로드 오류가 표시되지 않지만 콘솔에 표시되는 경우가 있습니다.

1

나는 동일한 문제가있었습니다. Rubygems 문제라고 생각합니다.
내가 할 일은 rvm으로 전환하는 것입니다.
Rubygems의 적절한 버전을 포함하여 여러 개의 루비 버전을 관리합니다.
소스에서 필요한 루비 버전을 다운로드하고 빌드하므로 필요한 모든 종속 항목을 먼저 설치하십시오.
그게 나를 위해 문제를 해결했습니다.

0

레일즈 2.3에서도 같은 문제가 발생했습니다. bundler을 사용하여 해결했습니다.

관련 문제