このようなフォームを作成します
@question = Question.new
3.times {@question.answers.build}
検証されない場合は、データが入力された状態でフォームを再表示しています。質問データを入力するのは難しくありません
@question = @user.questions.new(session[:question])
ただし、回答モデル(コンテンツとリンクフィールドがある)のセッションハッシュからネストされた値を取得するのに問題があります。これは機能していません。
3.times {@question.answers.build(:content => session[:question][:answers_attributes][:content], :correctanswer => session[:question][:answers_attributes][:correctanswer]) }
ハッシュオブジェクトの0、1、2回の反復が原因だと思います。たとえば、これはハッシュオブジェクトからのスニペットです(以下に完全に表示されています)
"answers_attributes"=>{"0"=>{"content"=>"",
しかし、質問の答えを作成するときにそれをどのように表現するかわかりません
3.times {@question.answers.build(:content => session[:question][:answers_attributes][:content]....
ビルドしようとしているとき、ハッシュオブジェクトからデータを抽出しようとしている間、反復を表現していません。この行を変更してパラメータをに渡す方法を説明できますかquestion.answers.build
これはハッシュオブジェクトです。
> Parameters: {"utf8"=>"✓", "question"=>{"content"=>"Lick me",
> "link"=>"bab", "answers_attributes"=>{"0"=>{"content"=>"",
> "correctanswer"=>"0", "_destroy"=>"false"}, "1"=>{"content"=>"",
> "correctanswer"=>"1", "_destroy"=>"false"}, "2"=>{"content"=>"",
> "correctanswer"=>"0", "_destroy"=>"false"}}}, "commit"=>"Create
> Question"}