Ruby on Rails - не удалось найти подходящую стратегию для: google_oauth2 - PullRequest
7 голосов
/ 20 февраля 2012

у меня есть

gem 'omniauth-google_oauth2'

в моем Gemfile. Сделал пакетную установку и после этого. Это ошибка, говоря:

рубин-1.9.3-р0 / драгоценные камни / OmniAuth-1.0.2 / Библиотека / OmniAuth / builder.rb: 33: в `rescue in provider ': не удалось найти подходящую стратегию для : Google_oauth2. Вам может понадобиться установить дополнительный драгоценный камень (например, OmniAuth-google_oauth2). (LoadError)

Чего мне не хватает? Любые идеи, пожалуйста.

Ответы [ 3 ]

11 голосов
/ 25 марта 2012

Использовать

gem 'omniauth-google-oauth2'  

Изменить последнее подчеркивание на дефис.

7 голосов
/ 07 марта 2013

Проблема вызвана тем, как OmniAuth верблюдирует имена провайдеров:

OmniAuth::Utils.camelize(:google_oauth2.to_s) => GoogleOAuth2

Однако на самом деле провайдер GoogleOauth2 - полностью квалифицирован - OmniAuth::Strategies::GoogleOauth2

Таким образом, решение заключается в использовании полностью квалифицированного класса: OmniAuth::Strategies::GoogleOauth2

Rails.application.config.middleware.use OmniAuth::Builder do
  provider OmniAuth::Strategies::GoogleOauth2, ENV["KEY"], ENV["SECRET"]
end
0 голосов
/ 13 декабря 2013

Использование решения Ben W позволило запустить сервер, но все испортило мне маршрут. Я использовал это в config/initializers/omniauth.rb

:google_oauth2, "[KEY]", "[SECRET]"

Мой путь авторизации в Google будет /auth/google_oauth2

...