2013-11-27 56 views
0

我有以下radio_button_tag組,我希望第一個被選中,並且當我提交表單時我想保持選定的值。任何幫助將非常感激。Rails選擇列表中的第一個單選按鈕並在提交後保持值

<% [ 'plain', 'desert', 'green', 'corporate', 'funky' ].each do |value, name| %> 
      <%= radio_button_tag :ed_type, (name || value) %> 
      <%= label_tag :"ed_type_#{(name || value)}", value.humanize %> 
<% end %> 

回答

1
<% [ 'plain', 'desert', 'green', 'corporate', 'funky' ].each_with_index do |value, index| %> 
      <%= radio_button_tag :ed_type, value, (params[:ed_type] ? (params[:ed_type]==value) : (index==0)) %> 
      <%= label_tag value %> 
<% end %> 

我的代碼忽略名稱|價值的一部分。當然,你可以自己添加它。

當表單被加載(GET請求)時,params [:ed_type]將爲零。因此,第二個條件將被評估,因此索引== 0(第一個)元素將被選中。

當表單被提交併再次渲染時,params [:ed_type]不會爲零。所以,第一個條件總是被評估,並適用於適當的單選按鈕。

+0

太棒了,那正是我想要的,只有一件事你忘了在最後加上「)」。 <%= radio_button_tag:ed_type,value,((params [:ed_type]?(params [:ed_type] == value):(index == 0)))%> – JAML

+0

我將它標記爲接受的答案並將答案標記爲很有幫助。謝謝你的時間 :-) – JAML

1

試試這個

<%= radio_button_tag :ed_type, (name || value), (name == 'plain' || value == 'plain') %> 
+0

感謝Ace Dimasuhid爲您解答:-) – JAML

+0

沒問題謝謝! –

相關問題