在下面的代码中,我使用单选按钮从三个选项中选择一个选项,
但是,由于一个单选按钮的名称与其他单选按钮不同,我可以选择所有三个选项而不是一个
我使用此代码是因为,我想更新包含文本框中所有三个名称的记录及其对应的选定值,
还有其他工作要做吗
查看
<% 1.upto(3) do |i| %>
<%= text_field_tag "fields[#{i}][name]",'' %>
<%= radio_button_tag "fields[#{i}][answer]", '1', false%>
<% end %>
控制器
params[:fields].each do |i, values|
u = Sample.new
u.name = values["name"]
u.answer = values["answer"] ? 1 : 0
u.save
end
感谢,
答案 0 :(得分:1)
你可能想要这样的东西:
<% 1.upto(3) do |i| %>
<%= text_field_tag "fields[#{i}][name]",'' %>
<%= radio_button_tag "fields[answer]", '#{i}', false%>
<% end %>
这将产生一个值为1,2或3的答案字段,具体取决于选择的字段。
答案 1 :(得分:1)
首先,嵌套属性可能非常适合您的问题。我建议调查那些而不是你现在接近的方式。
如果你想按照他们的方式坚持下去,你可以通过几次调整来使事情发生。
要使单选按钮正常工作,您需要为每个选项使用唯一值(i
):
<%= radio_button_tag "answer", i, false%>
然后在您的控制器中
u.answer = params["answer"] == i ? 1 : 0