2011-02-02 15 views
6

रेल 2.3.5, रूबी 1.86नतीजे का चयन नहीं किया जा रहा है

मैं इसे समझने में सक्षम नहीं हूं। नीचे दिए गए चयन में 'बदले' लिखा नहीं जा रहा है (एचटीएमएल में कोई बदलाव नहीं लिखा गया है)। मैं वाक्य रचना के लिए एक संदर्भ कुछ पुराने उदाहरण onchange कोष्ठक में घिरा हुआ है में छोड़कर अलग किया जा रहा है नहीं देखा है:

<%= f.select :directory_id, options_for_select(@directories, @directory_to_select), :onchange => 'folder_lookup()' %> 

परिणामों में:

<select id="contact_directory_id" name="contact[directory_id]"> 
<option value="2">test_1</option> 
<option value="4">test_2</option> 
<option value="33" selected="selected">test_3</option> 
</select> 


मैं बस परिवर्तन हैं "f.select" "select_tag" onchange सही ढंग से लिखा है करने के लिए नहीं है (मुझे लगता है कि हालांकि क्या करना चाहते हैं):

<%= select_tag :directory_id, options_for_select(@directories, @directory_to_select), :onchange => 'folder_lookup()' %> 

परिणामों में:

<select id="contact_directory_id" name="directory_id" onchange="folder_lookup()"> 
<option value="2">test_1</option> 
<option value="4">test_2</option> 
<option value="33" selected="selected">test_2</option> 
</select> 


मैं एक का चयन करें और select_tag सहायक के बीच onchange के लिए एक वाक्य रचना अंतर लापता हूँ?

धन्यवाद!

उत्तर

22

यह तुम क्या चाहते है:

<%= f.select :directory_id, options_for_select(@directories, @directory_to_select), {}, :onchange => 'folder_lookup()' %> 

चयन युक्त विधि हस्ताक्षर इस select(object, method, choices, options = {}, html_options = {}) तरह दिखता है। एक्सचेंज एक html_option है, क्योंकि आपके पास कोई विकल्प नहीं है, इसलिए आपको एक खाली हैश की आवश्यकता है ताकि आपका अंतिम परिवर्तन HTML_option के रूप में लिया जा सके।

+0

धन्यवाद - बहुत सराहना की! मुझे पूरी तरह से याद आया कि मुझे वहां प्लेसहोल्डर की जरूरत है। – Reno

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