2011-06-29 15 views
7

मैं ईमेल, इस प्रकार का उपयोग करने के मेरे उपयोगकर्ता मॉडल के साथ authlogic उपयोग कर रहा हूँ, लॉगिन क्षेत्र सेट के साथ: अगर मैं एक नया बनाने की कोशिशAuthlogic: उत्पन्न करता है "ईमेल पहले से ही लिया गया है" त्रुटि दो बार

acts_as_authentic do |c| 
    c.login_field = :email 
end 

उपयोगकर्ता, और ईमेल पहले से प्रयोग में है, यह दो बार एक नकली ईमेल त्रुटि कहते हैं: (कंसोल से)

user = User.new(:first_name => "fred", :last_name => "Smith", :email => User.last.email);user.valid?;errors = user.errors 
=> {:email=>["has already been taken", "has already been taken"]} 

मेरा अनुमान है कि यह, लॉगिन के रूप में ईमेल का उपयोग कर शायद के साथ कुछ है? मैं अलग validates_format_of से ईमेल पर किसी भी अन्य सत्यापन की जरूरत नहीं है, और मुझे लगता है कि सत्यापन (कोई फर्क नहीं करता है) को हटाने के साथ प्रयोग किया।

यह एक दर्द यह मेरी त्रुटियों मैं फार्म पर प्रदर्शित करेंगे, जब सत्यापन विफल अप खिलवाड़ के रूप में है।

इससे पहले कि मैं authlogic हैक करने का प्रयास जाने, किसी को पता है क्यों यह हो रहा जा सकता है? धन्यवाद, अधिकतम

उत्तर

10

मैं सिर्फ एक ही मुद्दे में भाग गया। acts_as_authentic ब्लॉक में config.validate_email_field = false पर कॉल करने का प्रयास करें। यह अभी भी लॉगिन फ़ील्ड को मान्य करेगा, जो हमारे मामले में ईमेल फ़ील्ड में, लेकिन केवल एक बार होगा।

+0

अहा, शांत, धन्यवाद :) –

+2

यह भी सुनिश्चित करें कि आप मैन्युअल रूप से मैदान पर सौंपा मान्यता है न, यानी बनाते हैं। 'मान्य करता है: ईमेल,: उपस्थिति => सत्य'। इसके परिणामस्वरूप मुझे संदेश 3 बार लौटा दिया गया। – mrt

2

एथलॉगिक में दो तरीके हैं: validate_email_field और validate_login_field।

इन विधियों/विशिष्ट सत्यापन सक्षम, अक्षम:

मैं भी मेरे एप्लिकेशन में config.login_field :email उपयोग करें, और मुझे लगता है कि User#email सुनिश्चित करने के लिए की जरूरत है मान्य है तो मेरे मामले में मैं सत्यापन के बीच अंतर की वजह से config.validate_login_field = false उपयोग करने के लिए चुना है।

+0

जानकारी के लिए धन्यवाद! –

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