我有一个应用程序,该应用程序在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个子问题,则只会保存最后一个。感谢对此的任何帮助。