2012-12-19 14 views
14

मैं अपनी लचीलापन के लिए रंसैक मणि से प्यार करता हूं, हालांकि मैं मानक संग्रह_सेलेक्ट को ठीक से काम करने में असमर्थ हूं। शायद कोई मदद कर सकता है।रेल + रंसैक - ड्रॉप सूची सूची ड्रॉप?

उदाहरण:

 <%= collection_select(:expense, :project_id, Project.all, 
     :id, :name, { prompt: 'Select Project'}, { class: 'span4' }) %> 
इस मामले में

, इस कोड को एक व्यय की प्रविष्टि स्क्रीन से है, इसलिए पहले पैरामीटर खर्च वस्तु है। रैंडैक फॉर्म में यह क्या होना चाहिए? साथ ही, मुझे पता है कि मुझे वहां प्रत्यय प्राप्त करने की आवश्यकता है। इस उदाहरण में, मैं project_id_eq को खोज पैटर्न बनना चाहता हूं।

इसके अलावा, मेरा फॉर्म एक नियंत्रक पर है और "रिपोर्ट" कहलाता है, मैं इस खोज को डिफ़ॉल्ट नियंत्रकों में नहीं डाल रहा हूं।

धन्यवाद!

उत्तर

28

लगता है कि यह काम करेगा।

<%= f.select :project_id_eq, options_from_collection_for_select(Project.all, "id", "name", @search.project_id_eq) %> 

यदि किसी के पास कोई अन्य सुझाव है, तो उसे भी जानना अच्छा लगेगा।

+0

इस अपवाद के साथ काफी अच्छी तरह से काम करता है कि यह आपको एक संकेत सेट करने के लिए ("चुनें" अनुमति नहीं देता: ड्रॉप डाउन का उपयोग कर कुछ करने के लिए उपयोगकर्ता खोजों के बाद इस तरह, उस विकल्प को निम्नलिखित पृष्ठ पर पूर्वचयनित है)। – dspencer

+3

@dspencer बस 'include_blank: true' कोष्ठक के बाहर रखें: '<% = f.select: languages_name_eq, options_from_collection_for_select (language.all," id "," name "), include_blank: true%>' – Edmund

14

एक include_blank साथ ऐसा करने के लिए वह कोष्ठकों के बाहर डाल दिया:

पूर्व:

<%= f.select :languages_id_eq, options_from_collection_for_select(Language.all, "id", "name"), include_blank: true %>

== अद्यतन ==

बेहतर अभी तक, f.collection_select का उपयोग करें।

<%= form.collection_select :vendor_id_eq, Vendor.all, :id, :name, include_blank: true %> 
संबंधित मुद्दे