2012-04-24 14 views
11

मैं इस तरह एक सरणी है:रेल - तार की एक सरणी से ड्रॉप डाउन

['New York', 'Los Angeles'] 

और मैं एक का चयन करें/इस तरह एक के रूप में उन मूल्यों के साथ विकल्प उत्पन्न करने में सक्षम होना चाहता हूँ:

<%= form_tag filter_city_path, :method=> get do %> 
    <%= select_tag "city", @list_of_cities %> 
<% end %> 

लेकिन यह काम नहीं कर रहा है। जैसा कि आप देख सकते हैं कि मैं यूआरएल में शहर के रूप में चयन को पास करना चाहता हूं।

उत्तर

15

आप

<%= select_tag "city", options_for_select([['New York' ,'New york'], ['Los Angeles', 'Los Angeles']]) %> 
+7

जब भी संभव हो, कोशिश करें और प्रोग्रामिंग रूप से लंबे समय तक वर्तनी के बजाय अपने सरणी को बदल दें। आपने सचित्र किया है कि दूसरे उदाहरण में 'यॉर्क' को कैपिटल करना क्यों नहीं है। 'cities.collect {| सी | [सी, सी]} 'इसे विस्तारित करने का काम करेगा। – tadman

0

ऐसा लगता है कि आपके सरणी में पर्याप्त तर्क नहीं है। कृपया this guide देखें।

विकल्प आम तौर पर इस तरह से स्वरूपित किए जाने की आवश्यकता:,

[['Lisbon', 1], ['Madrid', 2], ...] 

लो मूल्य 1, 2 ध्यान दें आदि

0

तरह सहायक options_for_select उपयोग करने की आवश्यकता इसके लिए मेरी विधि मॉडल में स्थिर के रूप में सरणी बनाने के लिए है, निरंतर सूचीबद्ध विकल्पों के लिए बल पुष्टि, और इसे से कॉल करें दृश्य

class Show < ApplicationRecord 

    DAYS = [ "monday", "tuesday", "wednesday", "thursday","friday", "saturday","sunday"] 

    validates :day, inclusion: DAYS 

end 

आपको लगता है कि क्षेत्र के लिए विकल्प सामग्री के बिना प्रस्तुत किया जाना चाहते हैं तो आप `allow_blank फोन करना होगा: सच 'सत्यापन के साथ-साथ।

<%= select_tag "day", options_for_select(Show::DAYS) %> 

या

<%= select_tag "day", options_for_select(Show::DAYS.sort) %> 

आप चाहते हैं यह presorted (जो सप्ताह के दिनों के साथ कोई मतलब नहीं है अगर: एक बार है कि आप की स्थापना की है के रूप में दृश्य के रूप में तो पॉप्युलेट करने के लिए लगातार फोन कर सकते हैं ...)

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