2016-05-15 6 views
5

में वैश्विक त्रुटि कैसे जोड़ें I Icto.Changeset पर एक त्रुटि सेट करना चाहते हैं जो किसी फ़ील्ड के लिए विशिष्ट नहीं है।एक्टो चेंजसेट

मेरे मामले में, मेरे पास लॉगिन फॉर्म है और मैं यह कहने में एक त्रुटि सेट करना चाहता हूं कि या तो ईमेल या पासवर्ड अमान्य है। हालांकि मैं अभी भी खाली होने पर email या password फ़ील्ड को हाइलाइट करना चाहता हूं।

रेल में आप errors[:base] पर एक प्रविष्टि जोड़ कर ऐसा कर सकते हैं। क्या एक्टो में बराबर है?

उत्तर

10

Ecto.Changeset.add_error आपको किसी भी परमाणु को कुंजी के रूप में पारित करने की अनुमति देता है, यह उस मॉडल का क्षेत्र नहीं होना चाहिए। आप इस तरह :base करने के लिए त्रुटि जोड़ सकते हैं: अपने खाके में

add_error(changeset, :base, "email or password is invalid") 

और फिर, या तो कार्य करें:

<%= error_tag f, :base %> 

या (जाँच उसमें कोई त्रुटि है, तो बाद):

<%= @changeset.errors[:base] %> 

आपके उपयोगकेस के लिए एक और विकल्प :email और :password

पर त्रुटि जोड़ने के लिए है
changeset 
|> add_error(:email, "email or password is invalid") 
|> add_error(:password, "email or password is invalid") 
+0

मुझे इसे <<% = error_tag @changeset में बदलना पड़ा, आधार%> – flp

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