2

these instructions에 이어 Google에 oauth2를 추가하려고합니다.스프링 및 미들웨어 충돌?

Exiting 
You've tried to invoke Spring when it's already loaded (i.e. the Spring constant is defined). 

This is probably because you generated binstubs with Spring 1.0, and you now have a Spring version > 1.0 on your system. To solve this, upgrade your bundle to the latest Spring version and then run `bundle exec spring binstub --all` to regenerate your binstubs. This is a one-time step necessary to upgrade from 1.0 to 1.1. 

Here's the backtrace: 

/Users/omonia/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-5.0.0/lib/active_support/dependencies.rb:287:in `load' 
/Users/omonia/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-5.0.0/lib/active_support/dependencies.rb:287:in `block in load' 
/Users/omonia/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-5.0.0/lib/active_support/dependencies.rb:259:in `load_dependency' 
/Users/omonia/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-5.0.0/lib/active_support/dependencies.rb:287:in `load' 
/Users/omonia/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/spring-1.7.2/lib/spring/binstub.rb:11:in `<top (required)>' 
/Users/omonia/.rbenv/versions/2.3.1/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:133:in `require' 
/Users/omonia/.rbenv/versions/2.3.1/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:133:in `rescue in require' 
/Users/omonia/.rbenv/versions/2.3.1/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:40:in `require' 
/Users/omonia/Dropbox/MyApp/bin/spring:13:in `<top (required)>' 

관련 보석이 설치 : : 나는 서버 시작 다음과 같은 오류 메시지를 수신하고있어

gem 'google-api-client', '0.9' 
gem 'omniauth' 
gem 'omniauth-google_oauth2' 

다음 코드는 config/initializers/omniauth.rb:

Rails.application.config.middleware.use OmniAuth::Builder do 
    provider :google_oauth2, 'my Google client id', 'my Google client secret', {client_options: {ssl: {ca_file: Rails.root.join("cacert.pem").to_s}}} 
end 

에 추가됩니다 무엇 여기 가니? 오류 지시 사항을 따르면 아무 것도 바뀌지 않습니다 (스프링은 최신 버전 1.7.2이며 실행중인 bundle exec spring binstub --all은 "봄이 이미 있음"만 반환 함).

+0

'봄'을 업그레이드하셨습니까? –

+0

먼저'bin/spring binstub --remove --all'을 실행 한 다음'bundle exec bin binstub --all'을 실행할 수 있습니까? 이 모든 명령을 –

+0

에 따라 업그레이드했는지 확인하십시오. 그러나 여전히 동일한 오류 메시지가 표시됩니다. 나는 이것이 새로운 앱이라는 것을 덧붙여 야한다. 추가 할 두 번째 사항 : omniauth-initializer에서 코드를 제거하면 더 이상 오류가 발생하지 않습니다. –

답변

0

OP는 그것이 도움이되었음을 확인했기 때문에 나의 comment을 대답으로 둡니다.

  • 실행이 bin/spring binstub --remove --all
  • 는 Gemfile에서 보석을 제거하고 bundle install을 실행하여 새로운 봄을 설치하고 문제를 해결하려면 다음 단계를 수행하십시오.
  • 이제 Gemfile에 gem "spring", group: :development을 추가하고 bundle installbundle exec spring binstub --alldoc 다음에 실행하십시오. 이제는 모두 괜찮을거야.
0

확인 설정/초기화/omniauth.rb 파일 및 콘텐츠 다음했는지 확인 : (GitHub의 또는 페이스 북되지 않음)

0

정확히 구글 제공자가 있는지 확인

Rails.application.config.middleware.use OmniAuth::Builder do 
    provider :google, 'Client_Id', 'Client_Secret' 
end 

rake rails:update:bin

-

내가 콘솔이 실행 - 이것은 나를 위해 일한 것입니다

다음으로 실행했습니다. bundle exec spring binstub --all

이 방법이 모두 작동한다고 보장 할 수는 없습니다.

고마워요 :)