2011-12-28 8 views
6

मुझे यह त्रुटि मिल रही है जब मैं omniauth का उपयोग कर रहा हूं, रेल के साथ तैयार 3.1.3. मैंने omniauth मणि ​​& omniauth facebook स्थापित किया है।कोई रूट मैचों [GET] "/ auth/facebook"

गाइड https://github.com/intridea/omniauth

जब भी मैं यूआरएल http://localhost:3003/auth/facebook/ ब्राउज़ asper match '/auth/:provider/callback',to: 'authentications#create' रूप routes.rb कॉन्फ़िगर, मैं मार्ग त्रुटि

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

कृपया है.मुझे पर मदद लग रहा है संबंधित पोस्ट किया है स्टैक ओवरफ्लो में, और कोई भी काम नहीं करता

उत्तर

8

रेल 3.2, OmniAuth 1.0.2 और Devise 2.0 का उपयोग करते समय मुझे भी यही समस्या थी।

स्पष्ट रूप से 'path_prefix' में कोई समस्या है। लेकिन जब मैन्युअल रूप से सबकुछ काम करता है तो काम करता है। कुछ ही घंटों के बाद (मुझ पर शर्म की बात है) इस मुद्दे मुझे एहसास हुआ कि मैं .gitignore फ़ाइल में config/initializers/omniauth.rb चाहते ठीक करने की कोशिश

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

उस परिवर्तन के बिना मैंने देखा कि/उपयोगकर्ताओं को पहले/auth (जैसे/उपयोगकर्ता/लेखक/फेसबुक) जोड़ना शामिल है। एक ही मणि संस्करणों का उपयोग करना, एक ही समस्या देख रहा था। – TuteC

+0

डेविस config.path_prefix के वैश्विक मान को बदलने की अनुमति नहीं देता है, लेकिन प्रत्येक प्रदाता में 'path_prefix =>'/auth'' सेट करना संभव है। – link0ff

1

:

अपने प्रारंभकर्ता में यह कर की कोशिश करें।

तो .gitignore सूची से omniauth.rb को दूर करता है, तो आप पहले से ही नहीं

3

मैं एक ही समस्या थी और पता चला कि यह की वजह से किया गया था: omniauthable वसीयत मॉड्यूल। आपको मॉड्यूल पर टिप्पणी करने की आवश्यकता होगी, उदाहरण के लिए:

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

देर से प्रतिक्रिया के लिए खेद है।

0

यह सबसे अधिक संभावना है क्योंकि आपने scoped_views का उपयोग करने के लिए devise.rb को कॉन्फ़िगर किया है। डेविस का डिफ़ॉल्ट व्यवहार आपके मॉडल पर यूआरएल को गुंजाइश करना है। इसके आस-पास काम करने का सबसे अच्छा तरीका है अपने स्वयं के नियंत्रकों का उपयोग, डेविस के उत्तराधिकारी, और डेविस को बताएं कि कौन से नियंत्रक और यूआरएल का उपयोग करना है। उस व्यवहार को प्राप्त करने के तरीके के बारे में अधिक विस्तृत स्पष्टीकरण के लिए Devise wiki pages का संदर्भ लें।

0

यह समस्या मेजबान संघर्ष के कारण थी, हमें यह सुनिश्चित करने की ज़रूरत है कि हम फेसबुक "फेसबुक लॉगिन के साथ वेबसाइट" -> साइट यूआरएल: "" उत्पादन और स्थानीय विकास के अनुसार बदल रहे हैं। enter image description here

संबंधित मुद्दे