2012-04-05 14 views
25

मैं अपने ऐप में simple_form का उपयोग करता हूं।चयन में रिक्त मूल्य का नाम कैसे बदलें?

मैं अपने चयन में रिक्त मूल्य को "" से अलग टेक्स्ट कैसे चुनूं?

मुझे बस खाली या नहीं शामिल करने का विकल्प मिलता है।

उत्तर

45

बेन,

यह है कि कैसे आप का चयन करने के विकल्पों को निर्माण कर रहे हैं पर निर्भर करता है। यदि आप इसे नीचे दिए गए कोड की तरह कर रहे हैं, तो बस एक स्ट्रिंग को पास करें: रिक्त शामिल करें।

select("post", "person_id", Person.all.collect {|p| [ p.name, p.id ] }, {:include_blank => 'Some text here'}) 

आप) एक options_for_select (साथ विकल्पों स्थापित कर रहे हैं, तो आप निम्नलिखित की तरह कुछ कर सकते हैं:

options_for_select([["Dollar", "$"], ["Kroner", "DKK"]]) 
मूल्य के साथ

सरणी में दूसरा मूल्य जा रहा है = "" और वह नाम जो ड्रॉपडाउन में पहले दिखाया गया है। तो आपके मामले में आप इस तरह देखने के लिए दूसरा जवाब को बदल सकता है:

options_for_select([["Some text here", ""], ["Dollar", "$"], ["Kroner", "DKK"]]) 
+2

यह एक स्ट्रिंग मान सेट नहीं कहा गया था है, लेकिन आप खाली विकल्प चाहते हैं, तो चयन आप 'जोड़ सकते हैं होने के लिए नहीं: include_blank => सत्य, अक्षम: "", चयनित: "", प्लेसहोल्डर: "फू बार" ' – MCB

+0

जॉर्जी का एक बेहतर उत्तर है, नीचे। 'include_blank' के बजाय, 'प्रॉम्प्ट' का उपयोग करें: 'कौन सा व्यक्ति?' 'इसमें एक खाली मूल्य होगा, लेकिन आपके द्वारा प्रदान किया गया प्रदर्शन टेक्स्ट। 'include_blank' केवल एक बुलियन स्वीकार करता है - यह प्रदर्शित करने के लिए एक स्ट्रिंग स्वीकार नहीं करता है। –

1

आप मैन्युअल सरणी options_for_select के लिए पारित की शुरुआत करने के लिए ["Your Text", ""] जोड़कर ऐसा करते हैं, या स्ट्रिंग select_tag के लिए पारित की शुरुआत करने के लिए "<option value=\"\">#{h("Your Text"}</option>" जोड़ सकते हैं।

31

बजाय

:include_blank => true 

:include_blank => "your text here" 

का प्रयास करें यदि यह है कि तुम क्या देख रहे हैं।

+2

वास्तव में नहीं, जो लेबल सेट करता है, मूल्य (विशेषता) – zappan

+0

नहीं, हालांकि सवाल का जवाब नहीं - यह मेरे प्रश्न का उत्तर था क्योंकि मैं खाली लेबल - चीयर्स सेट करना चाहता था। –

+0

यह 'select_tag' विधियों के लिए काम नहीं करेगा लेकिन 'चयन' विधियों के साथ काम करेगा। (और, हाँ, वे _are_ अलग हैं।) 'Include_blank' में मान के लिए स्ट्रिंग का उपयोग केवल स्ट्रिंग के साथ एक खाली विकल्प प्रदान करेगा। उस मामले में 'प्रॉम्प्ट' का प्रयोग करें। –

22

आप select_tag(name, option_tags = nil, options = {}) समारोह का उपयोग कर रहे हैं, तो सही विकल्प :prompt => "Some text" बजाय के लिए select

+3

मुझे यह पता लगाने में बहुत लंबा लगा कि पारंपरिक चयन की तुलना में select_tag के लिए यह अलग है। धन्यवाद। – zarazan

+0

टैग पूरे स्थान पर इतना अलग व्यवहार करता है। मुझे हर समय भी यात्रा करता है। – Dudo

+2

यह बिल्कुल सही है और समझने में थोड़ा मुश्किल है। 'select_tag' ** ** एक' include_blank' विकल्प स्वीकार करेगा, लेकिन वह उस पाठ को प्रदर्शित नहीं करेगा जिसे आप उस विकल्प के मान के रूप में पास करते हैं। इसके लिए आपको 'प्रॉम्प्ट' का उपयोग करने की आवश्यकता है। धन्यवाद @ जॉर्जियो! –

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