Rails 6 simple_form 接收散列

我有以下输入集合,这是调查的一部分:

<%= simple_form_for @appropriateness_test_result,url: url  do |f| %>
  <%= f.error_notification %>
  <%= f.error_notification message: f.object.errors[:base].to_sentence if f.object && f.object.errors[:base].present? %>

  <% randomize_questions.each_with_index.map do |q,i| %>
    <%= f.input "[#{i}][answer]",label: "#{i+1}. #{q[:question]}",collection: q[:answers].map.with_index { |a,i| [a,i.to_s] },as: :radio_buttons %>
    <%= f.input "[#{i}][id]",as: :hidden,input_html: { value: q[:id] } %>
   <% end %>
  <%= f.button :submit,'Submit' %>

这应该给我一个散列的结果,如下所示:

# question_answer_params output 
{"0"=>{"id"=>"21","answer"=>"Yes"},"1"=>{"id"=>"22","answer"=>"No"},"2"=>{"id"=>"23","3"=>{"id"=>"18","answer"=>"Some other answer"},"5"=>{"id"=>"20","answer"=>""}}

反而得到一个错误:

actionView::Template::Error(未定义方法 `[0][answer]' for #ApppropriatenessTestResult:0x00007f7f1de53b68 你的意思?答案):

这是正确的,因为 answerAppropriatenessTestResult 的字段(json 类型)。

但是,我仍然想强制 simple_form 使 simple_form_for 的这个输出成为一个像 question_answer_params 这样的自定义散列。是否有可能?有什么想法吗?

yanchengcai 回答:Rails 6 simple_form 接收散列

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/252079.html

大家都在问