2016-11-16 12 views
0

私はカスケード協会などとのモデルがあります: 調査>質問>オプションSequelize挿入

調査があり、多くの質問が 質問は、私が作成し、多くのオプション

を持っています調査オプションを使って質問を作成したい 元のオブジェクト:

survey = { 
     title: title, 
     description: description, 
     Questions:[ 
      { 
      question_type: 'Radio', 
      question: 'q1', 
      Options:[ 
       { 
       option: 'o1' 
       }, 
       { 
       option: 'o2' 
       } 
      ] 
      } 
     ] 
     } 

私はエラーを取得する以下のオプションを使用して作成します。

Unhandled rejection TypeError: Cannot read property 'getTableName' of undefined 

私のこの

models.Survey.create(survey,{ 
      include: [models.Question,{include: [models.Option]}] 
     }).then(function() { 
     reply({success:1}); 
    }); 

表のscemaのようなルックスに

質問作成:

QuestionId 
SurveyId 

私はまた別の質問があります。 "Option"アソシエーションを削除すると、質問が挿入されますが、 "Survey"の作成後にSurveyIdとして "NULL"が入力されています。

+0

確かに調査が定義されていますか? – zerohero

答えて

0

接続エラーです。お試しください:

models.Survey.create(survey, { 
    include: [{ 
     model: models.Question, 
     include: [models.Option] 
    }] 
}).then(function() { 
    reply({success:1}); 
}); 
+0

Tilovありがとうございます。 2番目のインクルードはトリックを行うようです。しかし、調査のために質問を挿入すると、Idはnullのように見えます。例:INSERT INTO 'Surveys'(' id'、 'title'、' description')VALUES(NULL、 'title'、 ''); INSERT INTO 'Questions'(' id'、 'question_type'、' question'、 'SurveyId')VALUES(DEFAULT、 'Radio'、 'q1'、NULL); INSERT INTO 'オプション'( 'id'、' option'、 'QuestionId')VALUES(DEFAULT、 'o1'、7); INSERT INTO 'オプション'( 'id'、' option'、 'QuestionId')VALUES(DEFAULT、 'o2'、7); –

関連する問題