Последовательная вставка от одного ко многим не работает?

#node.js #express #sequelize.js

#node.js #экспресс #sequelize.js

Вопрос:

Это мой код :

          const add_ticket = await db.Ticket.create({ 
              userId,
              travels: ticket.travels,
              TicketInventory: {
                fare: "Fare",
                passenger: "passenger",
                seatName: "seatName",
                serviceTax: "serviceTax",
              }
            },
            {
              include: {
                model: db.TicketInventory,
              }})
 

Мне нужно добавить сведения о «TicketInventory» в таблицу «TicketInventory»! Но это не добавление — но остальные детали были добавлены в таблицу «ticket»!

Ассоциация: билет имеет много TicketInventory и TicketInventory принадлежит билету!

Мой ассоциативный код:

 /// For Ticket Model
    static associate(models) {
      Ticket.hasMany(models.TicketInventory, { 
        foreignKey: 'ticketId', 
        onDelete: 'CASCADE' ,
        as: 'vegetables'
      });
    }
  };

/// For TicketInventory Model

static associate(models) {
      TicketInventory.belongsTo(models.Ticket, { 
        foreignKey: 'ticketId', 
      });
    }

Please help to resolve 
 

Комментарии:

1. Показать определения ассоциаций как есть

2. Я добавил код ассоциации — пожалуйста, проверьте @Anatoly

3. как: «овощи»??

4. ЛоЛ, я просто назвал это с разочарованием!

5. Затем вы должны указать псевдоним в include опции и изменить TicketInventory: vegetables: и превратить значение в массив

Ответ №1:

Такого рода вещи…

 const add_ticket = await db.Ticket.create({ 
              userId,
              travels: ticket.travels,
              vegetables: [{
                fare: "Fare",
                passenger: "passenger",
                seatName: "seatName",
                serviceTax: "serviceTax",
              }]
            },
            {
              include: [{
                model: db.TicketInventory,
                as: "vegetables"
              }]
            })