2012-02-20 55 views
6

我在我的Gemfile了Ruby on Rails的 - 無法找到匹配策略爲:google_oauth2

gem 'omniauth-google_oauth2' 

。之後也安裝了捆綁軟件。它錯誤說出來,

紅寶石1.9.3-P0 /寶石/ omniauth-1.0.2/lib目錄/ omniauth/builder.rb:33:在供應商「 `急救:找不到匹配策略爲 :google_oauth2。您可能需要安裝額外的寶石(例如 omniauth-google_oauth2)。 (LoadError)

我錯過了什麼?請任何想法。

回答

9

使用

gem 'omniauth-google-oauth2' 

改變最後下劃線連字符。

+0

真棒。爲我工作。 – nfriend21 2013-06-22 20:56:38

6

問題是由OmniAuth如何camelizes提供程序名稱造成的:

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

使用Ben W的解決方案使得服務器可以啓動,但搞砸了我的路線。我用這個在config/initializers/omniauth.rb

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

我的谷歌身份驗證路徑是那麼/auth/google_oauth2

相關問題