Rails选择列表中的第一个单选按钮并在提交后保持值

时间:2013-11-27 09:31:10

标签: ruby-on-rails ruby-on-rails-3 radio-button

我有以下radio_button_tag组,我希望选择第一个,当我提交表单时,我想保持所选的值。任何帮助将非常感激。

<% [ '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 %>

2 个答案:

答案 0 :(得分:1)

试试这个

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

答案 1 :(得分: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]将为nil。因此,将评估第二个条件,因此将选择index == 0(第一个)元素。

当提交并再次呈现表单时,参数[:ed_type]将不会为零。因此,始终评估第一个条件,并为相应的单选按钮变为true。