2013-02-20 98 views
5

क्या इस तरह के कई सत्यापनों को संक्षेप में निर्दिष्ट करने का कोई तरीका है?रेल 3 कस्टम संदेशों के साथ कई कॉलम की मौजूदगी की पुष्टि

validates :col_a, :presence => {:message => 'col_a cannot be blank'} 
validates :col_b, :presence => {:message => 'col_b cannot be blank'} 
validates :col_c, :presence => {:message => 'col_c cannot be blank'} 

अगर मुझे करना है तो मैं एक सामान्य संदेश के लिए बसूंगा।

उत्तर

19

का उपयोग आप एक सत्यापनकर्ता

validates :col_a, :col_b, :col_c, :presence => true 

करने के लिए कई फ़ील्ड नाम दे सकते हैं कर सकते हैं आप एक ही पंक्ति में कई प्रमाणकों निर्दिष्ट कर सकते हैं।

validates :col_a, :col_b, :col_c, :presence => true, :numericality => true 

पूर्ण त्रुटि संदेश में फ़ील्ड नाम होगा। आपको फ़ील्ड नाम उपसर्ग जोड़ने की आवश्यकता नहीं है। यदि आप कस्टम संदेश का उपयोग करना चाहते हैं तो:

validates :col_a, :col_b, :col_c, :presence => {:message => "empty value found"} 
1

validates_presence_of सहायक का उपयोग करें।

validates_presence_of :col_a 

संपादित

आप इसे validates_each साथ एक सा साफ कर सकते हैं। एपीआई पेज पर एक उदाहरण है। http://api.rubyonrails.org/classes/ActiveModel/Validations.html

आशा है कि

+0

धन्यवाद। मैं रेलों के बारे में जानता हूं <3 सहायक। सवाल यह था कि (ए) रेल 3 स्टाइल वैलिडेटर का उपयोग कैसे करें, (बी) प्रत्येक कॉल के लिए कस्टम संदेशों के साथ उम्मीदवारों को अधिक संक्षेप में कैसे निपटें। – danh

+0

validates_each इसे आपके लिए साफ़ करना चाहिए – jbearden

2

में मदद करता है आप

validates :col_a, presence: true 
validates :col_b, presence: true 
validates :col_c, presence: true