2012-02-20 34 views
6

Tôi đã cóRuby on Rails - Không thể tìm thấy phù hợp với chiến lược: google_oauth2

gem 'omniauth-google_oauth2' 

trong Gemfile tôi. Đã gói cài đặt sau đó là tốt. Nó lỗi ra nói,

ruby-1.9.3-p0/đá quý/omniauth-1.0.2/lib/omniauth/builder.rb: 33: trong 'cứu hộ trong nhà cung cấp': Không thể tìm thấy phù hợp với chiến lược cho : google_oauth2. Bạn có thể cần cài đặt thêm một viên ngọc (chẳng hạn như omniauth-google_oauth2). (LoadError)

Tôi đang thiếu gì? Bất kỳ ý tưởng xin vui lòng.

Trả lời

9

Sử dụng

gem 'omniauth-google-oauth2' 

Thay đổi gạch cuối cùng để một gạch nối.

+0

tuyệt vời. đã làm cho tôi. – nfriend21

6

Vấn đề là do cách OmniAuth camelizes tên nhà cung cấp:

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

Tuy nhiên các nhà cung cấp thực sự là GoogleOauth2 - đủ điều kiện - OmniAuth::Strategies::GoogleOauth2

Vì vậy, giải pháp là sử dụng lớp học đủ điều kiện: OmniAuth::Strategies::GoogleOauth2

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

Sử dụng giải pháp của Ben W làm cho máy chủ có thể khởi động nhưng vít lên cách tôi đang thực hiện các tuyến đường. Tôi đã sử dụng này trong config/initializers/omniauth.rb

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

đường google auth của tôi là sau đó /auth/google_oauth2

Các vấn đề liên quan