Создайте новую запись с ассоциацией «один ко многим» в SailsJS с помощью одного запроса.

Из документации по парусам изложенной здесь кажется как если бы я мог настроить модели с ассоциациями, а затем создать как родительскую запись, так и связанную запись в одном запросе, используя схему создания.

Я использую Паруса v1.4

Модель клиента

/**
 * Client.js
 *
 * @description :: A model definition represents a database table/collection.
 * @docs        :: https://sailsjs.com/docs/concepts/models-and-orm/models
 */

module.exports = {
  attributes: {

    name: {
      type: 'string',
      required: true,
      unique: true
    },

    address: {
      type: 'string',
      required: false,
      allowNull: true
    },

    /**
     * Associations
     */

    people: {
      collection: 'ClientContact',
      via: 'company'
    }

  },

};

Модель контакта с клиентом

/**
 * ClientContact.js
 *
 * @description :: A model definition represents a database table/collection.
 * @docs        :: https://sailsjs.com/docs/concepts/models-and-orm/models
 */

module.exports = {

  attributes: {

    name: {
      type: 'string',
      required: true
    },

    email: {
      type: 'string',
      required: false,
      allowNull: true,
      isEmail: true
    },

    /**
     * Associations
     */

    company: {
      model: 'client'
    }

  }

};

РАЗМЕСТИТЬ

{
    "name": "Bobs Plumbing",
    "address": "123 Some Road, Somewheresville",
    "people": [
        {
            "name": "Joe Bloggs",
            "email": "[email protected]"
        }
    ]
}

Это не удается с ошибкой:

Не удалось использовать предоставленное предложение where. Не удалось отфильтровать по id: недопустимый элемент в массиве модификаторов in. Не соответствует объявленному типу данных соответствующего атрибута. 1 ошибка проверки значения: • Указанное значение (словарь: {имя: 'Джо Блоггс', электронная почта: '[email protected]' }) не соответствует ожидаемому типу: 'число'

Я ожидал, что будет создана новая запись Client, а также новая запись ClientContact, привязанная к этому клиенту.

Похожие вопросы

Этот вопрос, кажется, подтверждает мои ожидания, но, похоже, не работает.


person Greg Clout    schedule 11.02.2021    source источник