简体   繁体   English

Omniauth / Rails问题-无法启动服务器

[英]Omniauth / Rails Issue - Can't start server

I'm trying to follow along with Railscasts #235 (Omniauth in a rails app). 我正在尝试遵循Railscasts#235(在Rails应用中使用Omniauth)。

Having some trouble with the Omniauth gem in Rails (v3.2). 在Rails(v3.2)中使用Omniauth gem遇到麻烦。 When I install the gem in my Gemfile, and specify the following in omniauth.rb (in config/initializers/): 当我在Gemfile中安装gem时,在omniauth.rb中(在config / initializers /中)指定以下内容:

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

I can't seem to start my server - I get the following error: 我似乎无法启动服务器-出现以下错误:

/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)

I could include the omniauth-twitter gem (the server starts with that), but I don't know why this wouldn't work without it. 我可以包含omniauth-twitter gem(服务器以此开头),但我不知道为什么没有它将无法正常工作。 When I forked the repo for the railscast, everything worked fine , so not sure why this is happening. 当我为railscast分叉存储库时,一切正常 ,因此不确定为什么会这样。 I thought it was because I have the omniauth-twitter gem installed (although not being used in the bundle), and I uninstalled it but that didn't work. 我以为是因为我安装了omniauth-twitter gem(尽管未在捆绑包中使用),但我将其卸载了,但没有用。

Full 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

Full stack trace below: 完整的堆栈跟踪如下:

/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>'

Any and all help is appreciated. 任何和所有帮助表示赞赏。

Read error message. 读取错误消息。 You need add omniauth-twitter gem to Gemfile . 您需要将omniauth-twitter gem添加到Gemfile

I'm fashionably late to the party here but I think you were being asked for omniauth-twitter because you were using the latest version of Omniauth > 1 and not the ~> 0.3.0 version as in the Railscasts. 我在这里晚些时候来晚了,但是我想您被要求使用omniauth-twitter,因为您使用的是Omniauth> 1的最新版本,而不是Railscasts中的〜> 0.3.0版本。

But you've probably already figured that out ;) 但是您可能已经知道了;)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM