2011-09-08 23 views
47

Aşağıda verilen kod için, seçilen değerle seçilen seçim kutusunu saklamak istedim.raylar select_tag seçili değer

Ama bu işe yaramazsa:

@yrs =[2011,2010,2009,2008] 
<%= select_tag 'year', options_for_select([["Select" , "" ]] + @yrs.to_a,:selected=>2011) %> 

nasıl bu konuda gitmemi bildiriniz.

Teşekkür

+0

@M Tarık Aziz tarafından sağlanan cevap, işleri, onu kabul geçin. –

cevap

82

:selected=> kısmını çıkarın.

dizimi:

options_for_select(@options, @selected_options) 

Kullanımı:

options_for_select(1..5, 3) # creates a range 1..5 , with 3 as selected by default 
5

Sadece netleştirmek için @M Tarık Aziz cevap:

Kodunuz gibi görünmelidir:

@yrs =[2011,2010,2009,2008] 
<%= select_tag 'year', options_for_select([["Select" , "" ]] + @yrs.to_a,2011) %> 

seçme etiketi için genel format:

<%= select_tag 'year', options_for_select(:collection, :selected) %> 
+1

Seçilen değer olarak bir dize kullandığım gibi bir anahtar değer olarak bir tamsayıya sahiptim. To_a'yı kullanmam için nereye ihtiyacın vardı. Beni doğru yöne işaret ettiğin için teşekkürler. Bu benim için çalıştı: <% = select_tag (: map_set_priority_filter, options_for_select (MapSet.priority_filters.collect {| öncelik | [priority.name, priority.id]}, @ map_set_priority_filter.to_i))%> – John

25
<%= select_tag "page_type", options_for_select(@page_type.collect{ |u| [u.data_name, u.id]}, :selected=>@page.page_type), {:class =>"select_combobox",:onchange=>"reset_form(this.id,'page_type_msg');"} %> 

bu benim için çalışıyor :)

İlgili konular