我正在深入嵌套的屬性和運行到這個未經許可的屬性錯誤。Rails 4 - 未經許可的參數 - 深度嵌套的屬性形式不保存
登錄:
Started POST "/videos/1/quizzes"
Processing by QuizzesController#create as HTML
Parameters: {"utf8"=>"✓",
"authenticity_token"=>"XdJ5lPZ7QuVEZiVYbphnV0T/NpMMTKVaL2dcWRxHVQU=",
"quiz"=>{"name"=>"Test",
"question"=>{"content"=>"Test",
"answer"=>{"content"=>"Test"}}}, "commit"=>"Submit", "video_id"=>"1"}
Video Load (0.1ms) SELECT "videos".* FROM "videos" WHERE "videos"."id" = ? LIMIT 1 [["id", 1]]
Unpermitted parameters: question
因此,所有的數據被提交。從周圍閱讀它看起來像嵌套的問題參數應該是「question_attributes」=>但在我的日誌中它只顯示「問題」=>。我不知道這與它有什麼關係?但在這一點上,這真的是我唯一的想法。
競猜#新:
def new
@video = Video.find(params[:video_id])
@quiz = @video.build_quiz
@quiz.questions.build
@quiz.questions.each do |question|
question.answers.build
end
end
的VIDEO_ID params爲工作,因爲你可以在上面看到它被提交。
測驗#創建
def create
@video = Video.find(params[:video_id])
@quiz = @video.create_quiz(quiz_params)
respond_to do |format|
if @quiz.save
format.html { redirect_to @quiz, notice: 'quiz was successfully created.' }
format.json { render :show, status: :created, location: @quiz }
else
format.html { render :new }
format.json { render json: @quiz.errors, status: :unprocessable_entity }
end
end
end
quizzes_params
def quiz_params
params.require(:quiz).permit(:name, questions_attributes: [:id, :content, :quiz_id, answers_attributes: [:id, :content, :question_id]])
end
因此,大家可以看到它的停止問題的參數和被保存答案參數。
讓我知道你是否需要別的東西!預先感謝您的任何幫助!
更新 這裏是部分表格! 我也試過做form_for @quiz do |f|
但是這並沒有改變提交的內容。 我試過的其他東西是和:answer
作爲:questions
和:answers
,但沒有運氣。
<%= form_for [@video, @quiz] do |f| %>
<%= f.label :name, "Title" %>
<%= f.text_field :name %>
<%= f.fields_for :question do |questions| %>
<%= questions.label :content, "Question" %><br>
<%= questions.text_area :content, rows: 3 %>
<%= questions.fields_for :answer do |answers| %>
<%= answers.label :content, "Answer" %>
<%= answers.text_field :content %>
<% end %>
<% end %>
<%= f.submit "Submit" %>
<% end %>
您需要從您提交表單的位置檢查視圖中的參數結構。 – 2014-12-02 06:51:44
你的html文件,我認爲你一定是缺少的東西,如f.fields_for被寫爲fields_for,這就是爲什麼你的「question_attributes」已成爲「問題」 – argentum47 2014-12-02 09:28:05
好吧,我添加了部分形式。 – Jacksonvoice 2014-12-02 17:21:22