2012-02-20 9 views
6

TengoRuby on Rails - No se puede encontrar la estrategia de juego para: google_oauth2

gem 'omniauth-google_oauth2' 

en mi Gemfile. ¿También se instaló el paquete después de eso? Él los errores hacia fuera, diciendo

-1.9.3-p0 rubí/gemas OmniAuth-1.0.2 lib OmniAuth builder.rb////: 33: estrategia no se pudo encontrar el juego: en `rescate en el proveedor ' para : google_oauth2. Es posible que deba instalar una gema adicional (como omniauth-google_oauth2). (LoadError)

¿Qué me falta? Cualquier idea, por favor

Respuesta

9

Uso

gem 'omniauth-google-oauth2' 

Cambiar el último guión bajo para un guión.

+0

impresionante. trabajó para mi. – nfriend21

6

El problema es causado por la forma en OmniAuth camelizes los nombres de los proveedores:

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

Sin embargo, el proveedor es en realidad GoogleOauth2 - completo - OmniAuth::Strategies::GoogleOauth2

Así que la solución es el uso de la clase completamente calificada: OmniAuth::Strategies::GoogleOauth2

Rails.application.config.middleware.use OmniAuth::Builder do 
    provider OmniAuth::Strategies::GoogleOauth2, ENV["KEY"], ENV["SECRET"] 
end 
0

El uso de la solución de Ben W hizo que el servidor fuera capaz de arrancar pero estropea la forma en que estaba haciendo las rutas. He utilizado este en config/initializers/omniauth.rb

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

Mi trayectoria Google autenticación es entonces /auth/google_oauth2

Cuestiones relacionadas