2012-06-16 2 views
0

레일 스톤즈 # 235 (레일즈 앱의 Omniauth)를 따라하려고합니다.Omniauth/Rails 문제 - 서버를 시작할 수 없습니다.

Rails (v3.2)의 Omniauth gem에 약간의 문제가 있습니다. 내 Gemfile에 보석을 설치하고 (설정/초기화/단위) omniauth.rb에 다음을 지정하는 경우 :

Rails.application.config.middleware.use OmniAuth::Builder do 
    provider :twitter, '...', '...' 
end 

내 서버를 시작할 수없는 것 - 나는 다음과 같은 오류가 발생합니다 :

/Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/omniauth-1.1.0/lib/omniauth/builder.rb:38:in `rescue in provider': Could not find matching strategy for :twitter. You may need to install an additional gem (such as omniauth-twitter). (LoadError) 

나는 omniauth-twitter gem (서버는 그 것으로 시작합니다)을 포함 할 수는 있습니다. 그러나 왜 이것이이 기능 없이는 작동하지 않을지 모르겠습니다. 난 railscast에 대한 repo를 갈래 모든 것이 잘 작동, 그래서이 일이 일어나고 있는지 잘 모르겠다. 내가 omniauth-twitter gem을 설치했기 때문에 (그것이 번들에서 사용되지는 않았지만) 나는 그것을 제거했다고 생각했으나 제거했지만 작동하지 않았습니다.

전체 Gemfile : 아래

source 'https://rubygems.org' 

gem 'rails', '3.2.2' 
gem 'omniauth' 
gem 'jquery-rails' 
gem 'bootstrap-sass' 
gem 'bcrypt-ruby' 
gem 'redcarpet' 

group :development, :test do 
    gem 'pg', '0.12.2' 
    gem 'rspec-rails', '2.9.0' 
    gem 'annotate' 
end 

group :assets do 
    gem 'sass-rails', '~> 3.2.3' 
    gem 'coffee-rails', '~> 3.2.1' 
    gem 'uglifier', '>= 1.0.3' 
end 

group :test do 
    gem 'capybara', '1.1.2' 
    gem 'factory_girl_rails', '1.4.0' 
end 

group :production do 
    gem 'pg', '0.12.2' 
end 

전체 스택 추적 :

/Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/omniauth-1.1.0/lib/omniauth/builder.rb:38:in `rescue in provider': Could not find matching strategy for :twitter. You may need to install an additional gem (such as omniauth-twitter). (LoadError) 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/omniauth-1.1.0/lib/omniauth/builder.rb:35:in `provider' 
    from /Users/tarunsachdeva/Development/rails/workbench/config/initializers/omniauth.rb:2:in `block in <top (required)>' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/rack-1.4.1/lib/rack/builder.rb:51:in `instance_eval' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/rack-1.4.1/lib/rack/builder.rb:51:in `initialize' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/omniauth-1.1.0/lib/omniauth/builder.rb:7:in `initialize' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/actionpack-3.2.2/lib/action_dispatch/middleware/stack.rb:43:in `new' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/actionpack-3.2.2/lib/action_dispatch/middleware/stack.rb:43:in `build' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/actionpack-3.2.2/lib/action_dispatch/middleware/stack.rb:113:in `block in build' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/actionpack-3.2.2/lib/action_dispatch/middleware/stack.rb:113:in `each' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/actionpack-3.2.2/lib/action_dispatch/middleware/stack.rb:113:in `inject' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/actionpack-3.2.2/lib/action_dispatch/middleware/stack.rb:113:in `build' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.2/lib/rails/engine.rb:470:in `app' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.2/lib/rails/application/finisher.rb:31:in `block in <module:Finisher>' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.2/lib/rails/initializable.rb:30:in `instance_exec' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.2/lib/rails/initializable.rb:30:in `run' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.2/lib/rails/initializable.rb:55:in `block in run_initializers' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.2/lib/rails/initializable.rb:54:in `each' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.2/lib/rails/initializable.rb:54:in `run_initializers' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.2/lib/rails/application.rb:136:in `initialize!' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.2/lib/rails/railtie/configurable.rb:30:in `method_missing' 
    from /Users/tarunsachdeva/Development/rails/workbench/config/environment.rb:5:in `<top (required)>' 
    from /Users/tarunsachdeva/Development/rails/workbench/config.ru:4:in `require' 
    from /Users/tarunsachdeva/Development/rails/workbench/config.ru:4:in `block in <main>' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/rack-1.4.1/lib/rack/builder.rb:51:in `instance_eval' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/rack-1.4.1/lib/rack/builder.rb:51:in `initialize' 
    from /Users/tarunsachdeva/Development/rails/workbench/config.ru:1:in `new' 
    from /Users/tarunsachdeva/Development/rails/workbench/config.ru:1:in `<main>' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/rack-1.4.1/lib/rack/builder.rb:40:in `eval' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/rack-1.4.1/lib/rack/builder.rb:40:in `parse_file' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/rack-1.4.1/lib/rack/server.rb:200:in `app' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.2/lib/rails/commands/server.rb:46:in `app' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/rack-1.4.1/lib/rack/server.rb:301:in `wrapped_app' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/rack-1.4.1/lib/rack/server.rb:252:in `start' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.2/lib/rails/commands/server.rb:70:in `start' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.2/lib/rails/commands.rb:55:in `block in <top (required)>' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.2/lib/rails/commands.rb:50:in `tap' 
    from /Users/tarunsachdeva/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.2/lib/rails/commands.rb:50:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>' 

모든 모든 도움에 감사드립니다.

답변

4

오류 메시지 읽기. 너 보석을 Gemfile에 추가해야합니다.

+0

미안 해요, 난 내 질문에 더 명확 했어야)

하지만 당신은 아마 이미 그것을 알아 냈어요 왜 이것이 이것이 그것 없이는 효과가 없을지를 알지 못한다. railscast에 대한 repo를 갈 렸을 때, 모든 것이 잘 작동했습니다 (railscasts는 omniauth gem만을 사용합니다). 왜 이런 일이 일어나는지 확실하지 않습니다. 이전에 omniauth-twitter gem을 다른 응용 프로그램에 설치했기 때문에 (그리고 번들에서 사용하지는 않았지만) 나는 그것을 제거했다고 생각했으나 제거했지만 작동하지 않았습니다. – tarunsachdeva

+0

왜'lib' 폴더에 이니셜 라이저가 있습니까? – Hauleth

+0

와우, 오타. 초기화 장치는 구성되고 고정되어 있습니다. – tarunsachdeva

0

저는 유행에 뒤늦게 파티에 왔습니다.하지만 Railswasts에서와 같이 Omniauth> 1이 아닌> 0.3.0 버전의 최신 버전을 사용하고 있었기 때문에 omniauth-twitter를 요청 받았던 것 같습니다. 나는 omniauth-트위터 보석 (서버가 시작)를 포함,하지만 난 할 수 돈 :

+0

그래, 고마워! – tarunsachdeva

관련 문제