我正在提交表格,这是有问题的部分
<input id="responder_selected_options_183__option_id_137" type="radio" value="137" name="0701b[selected_options][183][][option_id]">
<input id="responder_selected_options_183__content" type="text" name="0701b[selected_options][183][][content]">
<input id="responder_selected_options_183__option_id_138" type="radio" value="138" name="0701b[selected_options][183][][option_id]">
<input id="responder_selected_options_183__content" type="text" name="0701b[selected_options][183][][content]">
这些是生成的标签。有两个问题,每个问题都是带有可选文本字段的单选按钮。
"183"=>[{"option_id"=>"137", "content"=>"smth"}, {"content"=>""}]
如果选择了第一个单选按钮,并且给予相应字段的内容,则会按预期创建参数:
"183"=>[{"content"=>"smth", "option_id"=>"138"}, {"content"=>""}]
但是,如果将内容提供给第一个字段并选择了第二个单选按钮,则参数如下:
"183"=>[{"content"=>"smth"}, {"option_id"=>"138", "content"=>""}]
..虽然我希望它们是这样的:
background-repeat: no-repeat;
为什么会发生这种情况,我该如何解决这个问题?
谢谢!
答案 0 :(得分:0)
我无法按照我想要的方式解决问题。我最终为content
变量创建了一个新数组,并在模型中处理不同的事情。
<%= radio_button_tag('responder[selected_options][' + item.id.to_s + '][]', opt.id.to_s, @responder.answered_to?(opt, item), :disabled => @responder.finished?)%>
<%= text_field_tag('responder[options_content][' + item.id.to_s + ']['+opt.id.to_s+']', @responder.get_response_for_option(item, opt, lang.id), :disabled => @responder.finished?, :class => "form-control")%>
这可以为我提供所需的一切,而不会造成麻烦。
"selected_options"=>{"183"=>["137"]},
"options_content"=>{"183"=>{"137"=>"", "138"=>"smth"}}}}