2011-12-28 37 views
6

Tôi gặp phải lỗi này khi tôi đang sử dụng omniauth, phát minh với đường ray 3.1.3.I đã cài đặt viên đá omniauth & omniauth facebook.Không có kết quả phù hợp với tuyến đường [GET] "/ auth/facebook"

Đã định cấu hình routes.rb như match '/auth/:provider/callback',to: 'authentications#create' asper hướng dẫn https://github.com/intridea/omniauth

Bất cứ khi nào tôi duyệt url http://localhost:3003/auth/facebook/, tôi đang tìm kiếm định tuyến lỗi

**No route matches [GET] "/auth/facebook"** 

Xin giúp về this.I có bài liên quan trong stackoverflow, và không ai dường như làm việc

Trả lời

8

Tôi đã gặp vấn đề tương tự khi sử dụng Rails 3.2, OmniAuth 1.0.2 và Devise 2.0.

Dường như có sự cố với 'path_prefix'. Nhưng khi cấu hình lại mọi thứ hoạt động theo cách thủ công.

Hãy thử làm điều này trong initializer của bạn:

Rails.application.config.middleware.use OmniAuth::Builder do 
    configure do |config| 
    config.path_prefix = '/auth' 
    end 
    ... 
end 
+2

Nếu không có thay đổi đó, tôi nhận thấy rằng việc thêm/người dùng trước/auth (như/users/auth/facebook) hoạt động. Sử dụng cùng một phiên bản đá quý, đã nhìn thấy cùng một vấn đề. – TuteC

+0

Devise không cho phép thay đổi giá trị toàn cục của config.path_prefix, nhưng có thể đặt ': path_prefix => '/ auth'' trong mọi nhà cung cấp. – link0ff

1

Sau vài giờ cố gắng để khắc phục vấn đề này, tôi nhận ra rằng tôi muốn config/initializers/omniauth.rb trong file .gitignore (xấu hổ về tôi).

để loại bỏ omniauth.rb từ danh sách .gitignore nếu bạn chưa

3

tôi đã cùng một vấn đề và phát hiện ra rằng nó được gây ra bởi: mô-đun devise omniauthable. Bạn sẽ cần phải nhận xét ra mô-đun, ví dụ:

#app/model/user.rb 
def User 
    ... 
    devise :database_authenticatable, :registerable, :confirmable, 
      :recoverable, :rememberable, :trackable, :validatable#, :omniauthable 
    ... 
end 

Xin lỗi vì phản hồi muộn.

0

Điều này rất có thể do bạn đã định cấu hình devise.rb để sử dụng scoped_views. Hành vi mặc định của Devise là phạm vi URL trên mô hình của bạn. Cách tốt nhất để làm việc xung quanh đó là sử dụng bộ điều khiển của riêng bạn, kế thừa từ Devise's, và nói cho Devise những bộ điều khiển và URL nào sử dụng. Tham khảo Devise wiki pages để có giải thích chi tiết hơn về cách đạt được hành vi đó.

0

Vấn đề này là do xung đột chủ nhà, chúng tôi cần đảm bảo, chúng tôi đang thay đổi facebook "Trang web bằng Facebook Đăng nhập" -> URL của trang web: "" theo sản xuất và phát triển địa phương. enter image description here

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