2011-06-20 15 views
9

मैं एक वेब ऐप में चेरीपी, मको टेम्पलेट्स और स्क्लाक्लेमी का उपयोग कर रहा हूं। मैं रेल पृष्ठभूमि पर रूबी से आ रहा हूं और मैं अपने मॉडल के लिए कुछ डेटा सत्यापन स्थापित करने की कोशिश कर रहा हूं। मैं यह सुनिश्चित करने का सबसे अच्छा तरीका नहीं समझ सकता कि, 'नाम' फ़ील्ड का मूल्य है जब किसी अन्य फ़ील्ड का मान होता है। मैंने SAValidation का उपयोग करने की कोशिश की लेकिन मुझे नई पंक्तियां बनाने की इजाजत दी गई जहां एक आवश्यक कॉलम खाली था, भले ही मैंने कॉलम पर validates_presence_of का उपयोग किया। मैं WTForms देख रहा हूं लेकिन इसमें बहुत सारे डुप्लिकेट कोड शामिल हैं - मेरे पास पहले से ही मेरी मॉडल क्लास तालिका में कॉलम के साथ स्थापित है, मुझे फिर से उन सभी कॉलम को दोहराने की आवश्यकता क्यों है "अरे यह किसी को एक मूल्य की जरूरत है "? मैं "skinny controller, fat model" मानसिकता से आ रहा हूं और मेरे मॉडल में validates_presence_of या validates_length_of जैसे रेल-जैसी विधियों की तलाश में हूं। मेरे मॉडल को प्राप्त होने वाले डेटा को सत्यापित करने के बारे में मुझे कैसे जाना चाहिए, और Session.add/Session.merge सुनिश्चित करने में विफलता कब विफल हो जाती है?एसक्यूएलकेमी घोषणात्मक मॉडल के लिए डेटा सत्यापन

उत्तर

-4

मैं बाद में डब्ल्यूटीएफ का उपयोग कर समाप्त हुआ।

+0

आप कोड डुप्लिकेशन के आसपास कैसे पहुंचे? क्या आप थोड़ा सा समझा सकते हैं कि आप इसका उपयोग कैसे कर रहे हैं? मैं एक रेल देवता भी हूं लेकिन फ्लास्क + स्क्लेल्चेमी के साथ एक ऐप विकसित करना चाहता हूं ... मैंने डब्ल्यूटीएफएफम्स को देखा है लेकिन यह मेरे लिए थोड़ा सा विदेशी लगता है कि आप हमेशा दृश्य में सत्यापन को संग्रहीत कर रहे हैं ... जबकि मॉडल में इसे स्टोर करने के लिए अधिक मान्य (और अधिक सूखा) लगता है। – jbwiv

10

validation methods जोड़ने के लिए प्रलेखन पर नज़र डालें। आप केवल एक "अद्यतन" विधि जोड़ सकते हैं जो POST dict लेता है, यह सुनिश्चित करता है कि आवश्यक कुंजी मौजूद हैं, और मूल्य निर्धारित करने के लिए सजाए गए वैधकर्ताओं का उपयोग करें (कुछ भी भयानक होने पर त्रुटि उठाएं)।

+1

प्रमाणीकरण विधियां केवल एक समय में एक फ़ील्ड के लिए काम करती हैं। वह स्पष्ट रूप से सत्यापन का मतलब है जो क्षेत्रों के बीच संबंधों पर निर्भर करता है। –

2

मैंने मॉडल डेटा को सत्यापित करने के लिए कोड डुप्लिकेशन से बचने के विशिष्ट उद्देश्य के लिए SAValidation लिखा था। यह कम से कम हमारे उपयोग के मामलों के लिए, हमारे लिए अच्छा काम करता है।

हमारे परीक्षणों में, हमारे पास examples of the model's setup है और सत्यापन कार्यों को दिखाने के लिए परीक्षण हैं।

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