Rails允许嵌套属性

时间:2016-08-09 18:41:20

标签: ruby-on-rails

我有这个嵌套表单,submitted_quizsubmitted_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),但我对如何允许嵌套图层感到困惑。

1 个答案:

答案 0 :(得分:2)

你可以用两种方式做到:

1.只允许所有参数

params.require(:submitted_quiz).permit!

2.或按姓名:

params.require(:submitted_quiz).permit(:quiz_id, :name, submitted_answers_attributes: [:question_id])