我有这个嵌套表单,submitted_quiz
和submitted_answers
。我将添加此表单的基本布局,以便您更好地理解它:
<%= form_for([@user, @submitted_quiz]) do |f| %>
<%= f.hidden_field :quiz_id, :value => @quiz.id %>
<%= f.hidden_field :name, :value => @quiz.name %>
<%= f.fields_for (:submitted_answers) do |ff| %>
<%= ff.hidden_field :question_id, :value => question.id %>
<% end %>
<%= f.submit "Submit" %>
<% end %>
正如您所看到的,我需要允许:quiz_id
的{{1}},:name
,但我还需要允许submitted_quiz
的嵌套:question_id
。我知道如何只允许一个图层(submitted_answers
),但我对如何允许嵌套图层感到困惑。
答案 0 :(得分:2)
你可以用两种方式做到:
1.只允许所有参数
params.require(:submitted_quiz).permit!
2.或按姓名:
params.require(:submitted_quiz).permit(:quiz_id, :name, submitted_answers_attributes: [:question_id])