Ruby on rails 导轨+单选按钮标签

Ruby on rails 导轨+单选按钮标签,ruby-on-rails,forms,Ruby On Rails,Forms,在下面的代码中,我使用单选按钮从三个选项中选择一个选项 <% 1.upto(3) do |i| %> <%= text_field_tag "fields[#{i}][name]",'' %> <%= radio_button_tag "fields[#{i}][answer]", '1', false%> <% end %> 但是,由于一个单选按钮的名称与另一个不同,我可以选择所有三个选项,而不是一个 <% 1.upto(3) do |i

在下面的代码中,我使用单选按钮从三个选项中选择一个选项

<% 1.upto(3) do |i| %>
<%= text_field_tag "fields[#{i}][name]",'' %>
<%= radio_button_tag "fields[#{i}][answer]", '1', false%>
<% end %>
但是,由于一个单选按钮的名称与另一个不同,我可以选择所有三个选项,而不是一个

<% 1.upto(3) do |i| %>
<%= text_field_tag "fields[#{i}][name]",'' %>
<%= radio_button_tag "fields[#{i}][answer]", '1', false%>
<% end %>
我使用这段代码是因为,我想用文本框中的所有三个名称及其对应的选定值更新记录

<% 1.upto(3) do |i| %>
<%= text_field_tag "fields[#{i}][name]",'' %>
<%= radio_button_tag "fields[#{i}][answer]", '1', false%>
<% end %>
还有其他的工作可以做吗

<% 1.upto(3) do |i| %>
<%= text_field_tag "fields[#{i}][name]",'' %>
<%= radio_button_tag "fields[#{i}][answer]", '1', false%>
<% end %>
看法

<% 1.upto(3) do |i| %>
<%= text_field_tag "fields[#{i}][name]",'' %>
<%= radio_button_tag "fields[#{i}][answer]", '1', false%>
<% end %>

谢谢,

您可能想要这样的东西:

<% 1.upto(3) do |i| %>
<%= text_field_tag "fields[#{i}][name]",'' %>
<%= radio_button_tag "fields[#{i}][answer]", '1', false%>
<% end %>
<% 1.upto(3) do |i| %>
    <%= text_field_tag "fields[#{i}][name]",'' %>
    <%= radio_button_tag "fields[answer]", '#{i}', false%>
<% end %>
这将生成一个值为1、2或3的答案字段,具体取决于选择的答案字段。

首先,嵌套属性可能非常适合您的问题。我建议你看看这些,而不是你现在处理事情的方式

<% 1.upto(3) do |i| %>
<%= text_field_tag "fields[#{i}][name]",'' %>
<%= radio_button_tag "fields[#{i}][answer]", '1', false%>
<% end %>
如果你想保持现状,你可以通过一些调整使事情顺利进行

<% 1.upto(3) do |i| %>
<%= text_field_tag "fields[#{i}][name]",'' %>
<%= radio_button_tag "fields[#{i}][answer]", '1', false%>
<% end %>
要使单选按钮正常工作,您需要为每个选项使用唯一的值i:

<% 1.upto(3) do |i| %>
<%= text_field_tag "fields[#{i}][name]",'' %>
<%= radio_button_tag "fields[#{i}][answer]", '1', false%>
<% end %>
<%= radio_button_tag "answer", i, false%>

尝试在控制器中使用do u.answer=values[{i\u answer]?1:0 i是将帮助您将收音机与文本字段关联的索引。使用此索引,参数将像这样传递给控制器{1=>{name=>aaaaaaa},2=>{name=>bbbbbbb},is\u answer=>\{i}如果没有应答字段值,则保存时将保存三条记录,而不是两条记录,所有应答值均为0