5

मैंने this tutorial के बाद, रेलवे ऐप में प्रमाणीकरण सेट अप किया है। यह बहुत अच्छा काम करता है, कोई उपयोगकर्ता पंजीकरण कर सकता है और फिर ईमेल और पासवर्ड का उपयोग करके लॉग इन कर सकता है।ट्विटर के साथ devise/omniauth लॉगिन - सत्यापन विफल: ईमेल खाली नहीं हो सकता

अब मैं ट्विटर का उपयोग कर पंजीकरण/लॉग इन करने की क्षमता जोड़ना चाहता हूं। मैं devise wiki

से मार्गदर्शिका का पालन कर रहा हूं विकी में उदाहरण फेसबुक का उपयोग करता है, मैंने इसे ट्विटर का उपयोग करने के लिए बदल दिया है। यह ट्विटर पर जाने और प्राधिकरण का अनुरोध करने का प्रबंधन करता है, इसलिए मुझे यकीन है कि मेरे पास मूल बातें काम कर रही हैं। हालांकि एक बार यह मेरे ऐप पर लौटने के बाद मुझे निम्न त्रुटि मिलती है।

Validation failed: Email can't be blank 

मुझे लगता है कि ऐसा इसलिए है क्योंकि मैं एक ईमेल पता प्रदान करने में विफल रहा हूं।

मैं जिस कोड का उपयोग कर रहा हूं वह समान है (ट्यूटोरियल में फेसबुक को स्विप करने के अलावा), इसलिए मैं किसी भी नमूने पोस्ट नहीं कर रहा हूं। अगर आप कुछ देखना चाहते हैं तो कृपया मुझे बताएं।

मैं रेल के लिए काफी नया हूं इसलिए मुझे यकीन नहीं है कि डीबग कैसे करें। मुझे कैसे जारी रखना चाहिए इस पर कोई सलाह?

+3

मुझे लगता है कि यह इसलिए है क्योंकि सत्यापन के लिए ईमेल की आवश्यकता है लेकिन ट्विटर ईमेल प्रदान नहीं करता है। आपको या तो ईमेल की आवश्यकता नहीं होगी या उपयोगकर्ताओं को मैन्युअल रूप से ईमेल पता दर्ज करने के लिए कहना होगा। – abraham

उत्तर

3

अरे बस उपयोगकर्ता मॉडल से "मान्य करने योग्य" को हटा दें, यह खाली ईमेल की अनुमति देगा। मेरे लिए काम किया !!

+0

धन्यवाद, मैं सप्ताहांत में इसे आजमाउंगा – Finnnn

2

मुझे पता है कि यह प्रश्न पुराना है लेकिन यह अभी भी आता है और एक त्वरित Google खोज ने कुछ बहुत बुरी सलाह खो दी है। तो यहाँ ...

ईमेल वैकल्पिक बनाने के लिए सही तरीका है अपने उपयोगकर्ता मॉडल से validatable इंटरफ़ेस दूर करने के लिए, बस के बजाय यह जोड़ना नहीं है: में

def email_required? 
    false 
end 

इस विधि उपरोक्त ' मान्य करने योग्य 'वर्ग, कोड को संकेत देता है कि ईमेल एक वैकल्पिक फ़ील्ड है, लेकिन मान्यताओं में शामिल सभी अच्छी चीजें रखता है, जैसे आप जानते हैं ... सुनिश्चित करें कि आपके पास वास्तविक पासवर्ड और आसान चीजें हैं। सामग्री जो आप रखना चाहते हैं।

बेशक, अगर आपको कुछ भी सचमुच बेकार की ज़रूरत है, तो आपको वैध सत्यापन इंटरफ़ेस के स्रोत कोड पर एक नज़र डालना चाहिए और प्रासंगिक मान्यताओं में प्रतिलिपि बनाना चाहिए और आवश्यकतानुसार समायोजित करना चाहिए, लेकिन 99.99% लोगों के लिए, कोड I ' ऊपर प्रदान किया गया है शायद पर्याप्त है।

आशा है कि एक थके हुए थूगलर की मदद करता है।