2012-03-22 8 views
18

मैं वर्तमान में ActiveRecord::Base विरासत के बिना फ़ील्ड को सत्यापित करने का प्रयास कर रहा हूं।रेल पर रूबी: सक्रिय रिकॉर्ड के बिना मॉडल को कैसे सत्यापित करें?

मेरा मॉडल डेटा को कैश सर्वर पर संग्रहीत करता है इसलिए मुझे ActiveRecord की आवश्यकता नहीं है।

वैसे भी, मैं मॉडल के फ़ील्ड को सत्यापित करना चाहता हूं जैसे कि अगर मैं ActiveRecord (उदा। validates_numericality_of :quantity, :greater_than => 0) का उपयोग कर रहा था तो?

मैं यह कैसे कर सकता हूं?

आपकी मदद के लिए बहुत बहुत धन्यवाद।

+0

मेरा मानना ​​है कि यह वह प्रश्न है: http://stackoverflow.com/questions/315850/rails-model-without- डेटाबेस –

उत्तर

27

रेल 3 में, सक्रिय मॉडल में सक्रिय रिकॉर्ड की गैर-डेटाबेस कार्यक्षमता होती है।

मूल रूप से, आप, ActiveModel::Validations शामिल attr_accessor के रूप में अपने क्षेत्रों को परिभाषित, विशेषताओं को प्रारंभ करने और उन्हें गैर कायम रूप में अपने मॉडल एक डेटाबेस के लिए कायम नहीं कर रहा है बनाने के लिए एक initialize विधि का उपयोग करने की जरूरत है।

इस तरह आप टेबललेस मॉडल और आपके नियंत्रक पर सत्यापन कर सकते हैं जैसे कि आप सक्रिय रिकॉर्ड का उपयोग कर रहे थे। इस http://railscasts.com/episodes/219-active-model पर एक रेलस्कास्ट भी है।

1

यदि आप रूबी ऑब्जेक्ट्स के लिए एक स्टैंडअलोन सत्यापन की तलाश में हैं तो हमारे Veto gem देखें। यह हल्का वजन है, और इसकी कोई निर्भरता नहीं है .. ActiveModel अधिक हो सकता है।

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