radio_button_tag的值包含在哈希中

时间:2018-11-22 21:41:07

标签: ruby-on-rails radio-button

需要将数据返回为 "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})应该可以解决此问题-但是-我的标签不再显示

1 个答案:

答案 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?