Sequelize insert in mehrere Tabellen, mit den Verbänden (cascading)

Habe ich ein Modell mit cascading Verein wie:
Umfragen > Fragen > Optionen

Umfrage hat viele Fragen
Frage hat viele Optionen

Wenn ich erstellen Sie eine Umfrage, die ich erzeugen wollte Fragen mit Optionen.
ex-Objekt:

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

Wenn ich über die option unten, ich bekomme Fehler.

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

Meine erstellen die wie folgt aussieht

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

Tabelle scema

Frage:

QuestionId
SurveyId

Ich habe auch noch eine Frage. Wenn ich entfernen Sie die „Option“ association fügt es Fragen, aber es ist die Eingabe der „NULL“ als SurveyId nach „Umfrage“ Schöpfung.

  • sind Sie sicher, dass Befragung ist definiert?



One Reply
  1. 0

    Gibt ‚ s anschließen association-Fehler. Probieren Sie es aus:

    models.Survey.create(survey, {
        include: [{
            model: models.Question, 
            include: [models.Option]
        }]
    }).then(function() {
        reply({success:1});
    });
    
    • Danke Tilov. Die zweite gehören scheint, den trick zu tun. Allerdings, wenn die Frage eingefügt, die für die Erhebung der Id scheint zu sein, null. Für ex: INSERT INTO Surveys (id,title,description) VALUES (NULL,’title‘,“); INSERT INTO Questions (id,question_type,question,SurveyId) WERTE (DEFAULT,’Radio‘,’q1′,NULL); INSERT INTO Options (id,option,QuestionId) VALUES (DEFAULT,’o1′,7); INSERT INTO Options (id,option,QuestionId) VALUES (DEFAULT,’o2′,7);

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.