【发布时间】:2020-06-22 16:53:30
【问题描述】:
我想用一个表单创建多个记录,但我不确定如何使它与强参数一起工作。我可以让强参数接受哈希数组,但我不确定如何让表单发布,我可以让表单发布带有整数键的哈希,但我不确定如何让强params 接受。
我有一个Question 模型和一个Answer 模型。这是一个questionnaire 页面,它显示了所有Questions,并允许用户为它们创建Answers。
<h1>Questionnaire</h1>
<%= form_with url: questionnaire_path, local: true do |form| %>
<% @questions.each_with_index do |question| %>
<%= fields_for "answers[]", question do |af| %>
<p><%= question.body %></p>
<% question.options&.each_with_index do |option, index| %>
<%= af.check_box :options, {multiple: true }, index, nil %>
<%= af.label :options, option %>
<%= af.hidden_field :question_id, value: question.id %>
<% end %>
<% end %>
<% end %>
<p><%= form.submit "Submit Answers" %></p>
<% end %>
我得到如下所示的参数:
"answers"=>{"0"=>{"options"=>["0"]}, "1"=>{"options"=>["0", "2"]}}
所以我尝试使用这个:
def answer_params
params.require(:answers).permit(:question_id, options: [])
end
然后我得到一个错误:
Unpermitted parameters: :1, :2
【问题讨论】:
标签: ruby-on-rails strong-parameters