嵌套表单仅将最后一项保存在Rails应用中

时间:2019-05-28 19:29:15

标签: ruby-on-rails ruby nested-forms

我有一个应用程序,该应用程序在yaml文件中包含一个问题列表。一些问题将包含子问题。因此,问题20可以具有3个与之相关的子问题。 我已经创建了一个具有has_many和belongs_to关联的Answer模型和SubAnswer模型。我还允许将子答案作为答案模型的嵌套属性

master-restart api

某些问题可能包含0个或最多5个子问题。我正在尝试动态地预填充嵌套字段,但是很难弄清楚这一点。

我的控制器动作看起来像这样

class SubAnswer < ApplicationRecord
  belongs_to :answer

class Answer < ApplicationRecord
  has_many :sub_answers
  accepts_nested_attributes_for :sub_answers

我的创建动作只是将参数打印到我的终端上。

def form_page
  @question = Question.find_question_in_file(params[:question_index].to_i)
  @answer = Answer.new

  @category_questions_count = SurveyQuestion.questions_by_category(@question.gr_stream.downcase)
  @question_category = @question.gr_stream
end

def answer_params
  params.require(:answer).permit(:question_index, :answer_text, :survey_id, :answer_boolean, sub_answers_attributes: [:id, :question_index, :answer_text, :answer_boolean])
end

表单中的nested_fields部分看起来像这样

def create
  p params
end

我试图遍历每个子问题并创建一个fields_for部分。每次提交表单时,都会保存主要答案和最后一个子问题。如果我有3个子问题,则只会保存最后一个。感谢对此的任何帮助。

0 个答案:

没有答案