2010-12-15 15 views
11

मैं रेल 2.3.4 का उपयोग कर रहा हूं, जो, जब आप 'f' ऑब्जेक्ट पर .check_box को form_for में कॉल करते हैं, तो 'चेक' मान के लिए एक दृश्यमान चेकबॉक्स इनपुट बनाता है, और 'अनचेक' के लिए एक छुपा चेकबॉक्स इनपुट बनाता है। मूल्य: http://railsbrain.com/api/rails-2.3.2/doc/index.html?a=M002434&name=check_box'अनचेक' मान के लिए छुपा चेक_बॉक्स न जोड़ने के लिए मैं चेक_बॉक्स विधि कैसे कहूं?

इस के साथ समस्या यह मैं check_box पर एक validates_acceptance_of मान्यता है, और वह यह है कि अगर यह जाँच नहीं की है, मैं एक field_with_errors div दिखाई चेकबॉक्स और छिपे हुए चेकबॉक्स के चारों ओर लिपटा हो रही है, तो यह है कि त्रुटि संदेश दो बार प्रकट होता है।

इस उदाहरण में मैं नहीं चाहता कि 'अनचेक' मामले में एक मूल्य पारित हो, इसलिए मैं नहीं चाहता कि रेल छिपे हुए चेकबॉक्स को जोड़ दें - यह (छिपी हुई चेकबॉक्स को बंद करना) मेरी समस्या का समाधान करेगा। मैं यह नहीं समझ सकता कि छुपा चेकबॉक्स जोड़ने के लिए इसे कैसे बताना है। क्या कोई मुझे बता सकता है?

मुझे पता है कि मैं चेक_बॉक्स_टैग बनाकर इसे गोल कर सकता हूं, जो छुपा 'अनचेक' केस चेकबॉक्स नहीं जोड़ता है, लेकिन तब मुझे चेकबॉक्स के चारों ओर लपेटकर फ़ील्ड_with_errors चीजें नहीं मिलती हैं। छिपे हुए क्षेत्र के साथ वितरण सबसे साफ समाधान की तरह लगता है।

धन्यवाद - अधिकतम

उत्तर

5

उपयोग <%= check_box_tag "your_model[your_field]" %>

f.check_box हमेशा आप एक छिपी हुई फ़ील्ड देता है।

+0

धन्यवाद पीटर, कि मैं क्या कर रही है समाप्त हो गया है, जबकि मैं अगर वहाँ एक अच्छा समाधान था देखने के लिए इंतजार कर रहे थे है। यह एक दर्द है हालांकि जैसा कि मैंने कहा है कि आपको फ़ील्ड करना है, मैन्युअल रूप से मैन्युअल रूप से सामग्री। –

+0

या अपने खुद के फॉर्म निर्माता को परिभाषित करना? हालांकि एक त्रुटि निर्माता को परिभाषित करना शायद त्रुटि संदेश के साथ 'check_box_tag' का उपयोग करने से अधिक कठिन हो सकता है, यह वास्तव में ऐसा करने के लायक है। – PeterWong

+0

हाँ, एक कस्टम फॉर्म बिल्डर मुझे लगता है कि जाने का तरीका है। मैंने इसे पहले किया है और यह एक परेशानी की तरह लगता है लेकिन फिर भी शायद आपको समय बचाता है क्योंकि आपके पास कुल नियंत्रण है। –

26

रेल में 4 आप उपयोग कर सकते include_hidden: false

उदाहरण f.check_box :some_field, include_hidden: false

+0

के लिए +1 लिख सकते हैं, यह एक उपयोगी उत्तर नहीं है। शायद आपको थोड़ा और समझाने के लिए अपने उत्तर का विस्तार करना चाहिए। –

+0

उपयोग – shlensky

+0

का जोड़ा गया उदाहरण वर्तमान में केवल 4.2 – Crystark

4

रेल 3.2 के बाद से, छिपी हुई फ़ील्ड अगर unchecked_value तर्क false का मूल्यांकन नहीं दिखाया जाएगा।

उदाहरण: f.check_box :your_field, {}, checked_value, false

रेल स्रोत देखें: 3.2, 4.1

+0

वाह, धन्यवाद, मुझे कुछ सिर खरोंच बचाया! – kranzky

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