2012-06-12 11 views
5

ActiveRecord मॉडल में किसी फ़ील्ड पर संख्यात्मकता को सत्यापित करते समय मैं उप विकल्पों के लिए त्रुटि संदेशों को कैसे अनुकूलित कर सकता हूं?संख्यात्मकता उप-विकल्पों को मान्य करने के लिए त्रुटि संदेशों को कैसे अनुकूलित करें?

उदाहरण:

validates :month, :numericality => { 
    :greater_than_or_equal_to => 1, 
    :less_than_or_equal_to => 12 
} 

इस मामले में अगर 'माह' विशेषता 12 से अधिक है, मैं डिफ़ॉल्ट के बजाय कस्टम त्रुटि संदेश प्रदान करने के लिए "12 से कम या उसके बराबर होना चाहिए" चाहते हैं। इसे कैसे प्राप्त करें?

उत्तर

8

यदि आप कस्टम सत्यापनकर्ता का उपयोग नहीं करना चाहते हैं, तो आप इसके बजाय en.yml फ़ाइल का उपयोग कर सकते हैं। मान लें कि "पोस्ट" आपका मॉडल नाम था, यह आयु-विशिष्ट संदेशों, पोस्ट-विशिष्ट संदेशों, और जेनेरिक (सभी मॉडल) संदेशों के लिए उदाहरण प्रदान करता है।

en: 
    activerecord: 
    errors: 
     models: 
     post: 
      attributes: 
      age: 
       less_than_or_equal_to: "Age-specific error" # Applies only to post.age 
      less_than_or_equal_to: "Post-specific error" # Applies to all other fields for a post 
     messages: 
     less_than_or_equal_to: "Generic error" # Applies to all other models 
+0

लेकिन इसका मतलब यह होगा कि मैं इसे 'less_than_or_equal_to' के कई घटनाओं में अनुकूलित नहीं कर सकता हूं? – Vignesh

+0

कई घटनाओं को दिखाने के लिए अपडेट किया गया –

+0

केवल_इनटेगर के बारे में क्या? वह कुंजी काम नहीं कर रही प्रतीत होती है, यद्यपि: एक ही स्थान पर घोंसला करते समय big_than काम करता है। संपादित करें (यानी उत्तर): इसे [स्रोत कोड] में मिला (https://github.com/rails/rails/blob/3-2-stable/activemodel/lib/active_model/validations/numericality.rb#L34): यह 'not_an_integer' है –

0

आप मॉडल के आधार पर त्रुटि संदेश भेजना कस्टमाइज़ करना चाहते हैं तो आप इस वाक्य विन्यास का उपयोग कर सकते हैं:

validates_numericality_of :month, 
    greater_than_or_equal_to: 1, 
    less_than_or_equal_to: 12, 
    message: "My custom error message" 

तुम भी विशिष्ट परिस्थितियों के आधार पर त्रुटि संदेश अनुकूलित करने के लिए इस वाक्य विन्यास का उपयोग कर सकते हैं:

validates_numericality_of :month, 
    greater_than_or_equal_to: 1, 
    message: "Too small" 

validates_numericality_of :month, 
    less_than_or_equal_to: 12, 
    message: "Too big 
संबंधित मुद्दे