के लिए रेल सत्यापन को छोड़ें मेरे पास एक उपयोगकर्ता वर्ग है, और एक संपर्क जहां संपर्क उपयोगकर्ता का उप-वर्ग है। दोनों कक्षाओं को उपयोगकर्ता तालिका में संग्रहीत किया जाता है।रेल - सबक्लास
मेरे संपर्कों में ईमेल पता हो सकता है या नहीं, जबकि मेरे उपयोगकर्ताओं के लिए एक ईमेल पता आवश्यक है (मेरे पास validates_presence_of :email
है जो मेरी उपयोगकर्ता मॉडल परिभाषा में है)।
मेरा तर्क यह है कि संपर्क उपयोगकर्ताओं द्वारा दर्ज किए जाते हैं और बाद में जब वे अपनी प्रोफ़ाइल का दावा करते हैं तो उपयोगकर्ता बन सकते हैं।
- सबसे पहले, क्या यह मेरे उपयोगकर्ताओं और संपर्कों को परिभाषित करने के लिए ठीक है?
- दूसरा, मैं अपने संपर्क मॉडल में
validate_presence_of email
सत्यापन कैसे छोड़ूं?
धन्यवाद (मैं रेल 2.3.8 पर हूँ)!
अद्यतन:
ऐसा लगता एकल टेबल विरासत वास्तव में क्या मैं अपने संपर्क के लिए ईमेल की उपस्थिति के लिए सत्यापन छोड़ करने के लिए
सही तरीके से की जरूरत तालिका है ऐसा करने के लिए डिज़ाइन किया गया है जैसा कि अनुसरण करें:
validates_presence_of :email, :unless => Proc.new {|user| user.type == "Contact"}
नहीं उपयोगकर्ता एक उपवर्ग होना चाहिए
इस तरह आप सही ढंग से मॉडल को मान्य होता है संपर्क का? ऐसा लगता है कि एक उपयोगकर्ता * एक * संपर्क है जो पंजीकृत है। लेकिन एक संपर्क जरूरी नहीं है उपयोगकर्ता। इससे आपकी सत्यापन समस्या भी हल हो जाएगी, क्योंकि उपयोगकर्ता मॉडल में प्रमाणीकरण होगा, जब तक कि किसी की आवश्यकता को अस्वीकार न किया जाए। – Raphael