जवाबों:
रेल 3 से, आप कर सकते हैं:
validates :field, inclusion: { in: [ true, false ] }
validates :field, inclusion: [true, false]
validates :field, presence: true
बूलियन फ़ील्ड के लिए उपस्थिति ( ) के लिए सामान्य सत्यापन नहीं हो सकता है (फ़ील्ड false
मान के लिए मान्य नहीं होगा )। लेकिन दोनों रेल 3 और 4 में, validates :field, inclusion: [true, false]
क्षेत्र की उपस्थिति के लिए परीक्षण करने के लिए साइड-इफेक्ट के साथ मूल्यों की एक सूची में शामिल करने के लिए परीक्षण करना होगा, (जब तक कि उन मूल्यों में nil
से एक पाठ्यक्रम का नहीं है)।
validates :field, inclusion: { in: [ true, false ], message: "Please, select one!" }
मुझे विश्वास है कि बूलियन क्षेत्र के लिए आपको कुछ करने की आवश्यकता होगी:
validates_inclusion_of :field_name, :in => [true, false]
एपीआई के एक पुराने संस्करण से : "यह जिस तरह से वस्तु # रिक्त है उसके कारण है?
मुझे यकीन नहीं है कि अगर यह अभी भी रेल 3 के लिए ठीक रहेगा, तो उम्मीद है कि मदद मिलेगी!
true
।
जब मैं इसे लागू करता हूं, मुझे मिलता है:
कंधे से कंधा मिलाकर चेतावनी:
आप validate_inclusion_of
यह दावा करने के लिए उपयोग कर रहे हैं कि एक बुलियन कॉलम बूलियन मानों को अनुमति देता है और गैर-बूलियन को नापसंद करता है। ध्यान रखें कि यह पूरी तरह से परीक्षण करना संभव नहीं है, क्योंकि बूलियन कॉलम स्वचालित रूप से गैर-बूलियन मान को बूलियन वाले में बदल देगा। इसलिए, आपको इस परीक्षण को हटाने पर विचार करना चाहिए।
आप छोटे संस्करण का उपयोग कर सकते हैं:
validates :field, inclusion: [true, false]
अतिरिक्त विचार। जब मैं दुश्मनों से निपटता हूं, तो मुझे एक निरंतर का उपयोग करना पसंद है:
KINDS = %w(opening appointment).freeze
enum kind: KINDS
validates :kind, inclusion: KINDS
रेल्स डॉक्स 5.2.3 के अनुसार उत्तर
यह सहायक (उपस्थिति) मान्य करता है कि निर्दिष्ट विशेषताएँ खाली नहीं हैं। यह रिक्त का उपयोग करता है? जाँचने का तरीका कि मान या तो शून्य है या रिक्त स्ट्रिंग है, यानी एक स्ट्रिंग जो या तो खाली है या जिसमें व्हाट्सएप है।
झूठे.ब्लैंक के बाद से? यह सच है, यदि आप बूलियन फ़ील्ड की उपस्थिति को मान्य करना चाहते हैं, तो आपको निम्न मान्यताओं में से एक का उपयोग करना चाहिए:
validates :boolean_field_name, inclusion: { in: [true, false] }