需要将数据返回为
"results"=>[{"radio_result"=>"true"}, {"radio_result"=>"false"}...]
当前具有代码:
@results.each_with_index do |result, index|
= radio_button_tag "results[][radio_result][#{index}]", true, result.radio_result?, id: "results__radio_result_#{index}_true"
= label_tag "results[][radio_result][#{index}][false]", 'Yes'
= radio_button_tag "results[][radio_result][#{index}]", false, !result.radio_result?, id: "results__radio_result_#{index}_false"
= label_tag "results[][radio_result][#{index}][true]", 'No'
虽然可以,但是返回的数据格式错误("results"=>[{"radio_result"=>{"0" => "true"}}, {"radio_result"=>{"0" => "false"}}...]
将代码更改为= radio_button_tag "results[][radio_result]
(从中删除#{index})应该可以解决此问题-但是-我的标签不再显示
答案 0 :(得分:0)
如果您较早移动index
会发生什么?
= radio_button_tag "results[#{index}][radio_result]"
话虽这么说,我还是忍不住想起来,也许还有更多的Railsy方式可以做到这一点。我不确定自己的头顶是不是,但也许像这样:
= f.fields_for result do |result_fields|
= result_fields.radio_button true, checked: result.radio_result?
= result_fields.radio_button false, checked: !result.radio_result?