У меня есть к реляционным моделям, вопрос, который может иметь много Ответ:Как обновить соответствующие модели с шлейфом
Вот мой question.json:
{
"name": "Question",
"base": "PersistedModel",
"idInjection": false,
"options": {
"validateUpsert": true
},
"mysql": {
"schema": "metal-quizz",
"table": "Question"
},
"properties": {
"id": {
"type": "Number",
"id": true,
"required": true,
"length": null,
"precision": 10,
"scale": 0,
"mysql": {
"columnName": "id",
"dataType": "int",
"dataLength": null,
"dataPrecision": 10,
"dataScale": 0,
"nullable": "N"
},
"_selectable": false
},
"label": {
"type": "String",
"required": true,
"length": 255,
"precision": null,
"scale": null,
"mysql": {
"columnName": "label",
"dataType": "varchar",
"dataLength": 255,
"dataPrecision": null,
"dataScale": null,
"nullable": "N"
},
"_selectable": false
},
"level": {
"type": "Number",
"required": true,
"length": null,
"precision": 10,
"scale": 0,
"mysql": {
"columnName": "level",
"dataType": "int",
"dataLength": null,
"dataPrecision": 10,
"dataScale": 0,
"nullable": "N"
},
"_selectable": false
}
},
"validations": [],
"relations": {
"answers": {
"type": "hasMany",
"model": "Answer",
"foreignKey": "questionId"
}
},
"acls": [],
"methods": {}
}
Вот мой answer.json:
{
"name": "Answer",
"base": "PersistedModel",
"idInjection": false,
"options": {
"validateUpsert": true
},
"mysql": {
"schema": "metal-quizz",
"table": "Answer"
},
"properties": {
"id": {
"type": "Number",
"id": true,
"required": true,
"length": null,
"precision": 10,
"scale": 0,
"mysql": {
"columnName": "id",
"dataType": "int",
"dataLength": null,
"dataPrecision": 10,
"dataScale": 0,
"nullable": "N"
},
"_selectable": false
},
"questionId": {
"type": "Number",
"required": true,
"length": null,
"precision": 10,
"scale": 0,
"mysql": {
"columnName": "questionId",
"dataType": "int",
"dataLength": null,
"dataPrecision": 10,
"dataScale": 0,
"nullable": "N"
},
"_selectable": false
},
"label": {
"type": "String",
"required": true,
"length": 255,
"precision": null,
"scale": null,
"mysql": {
"columnName": "label",
"dataType": "varchar",
"dataLength": 255,
"dataPrecision": null,
"dataScale": null,
"nullable": "N"
},
"_selectable": false
},
"status": {
"type": "Number",
"required": true,
"length": null,
"precision": 3,
"scale": 0,
"mysql": {
"columnName": "status",
"dataType": "tinyint",
"dataLength": null,
"dataPrecision": 3,
"dataScale": 0,
"nullable": "N"
},
"_selectable": false
}
},
"validations": [],
"relations": {
"question": {
"type": "belongsTo",
"model": "Question",
"foreignKey": ""
}
},
"acls": [],
"methods": {}
}
Я хотел бы иметь веб-страницу с формой, которая отображает вопрос и все связанные с ним ответы и позволяет мне обновлять их все одновременно. Мне удалось отобразить часть без каких-либо проблем, но я получаю орехи в части обновления.
В теории это возможно, так как я могу это сделать через Проводник по следующим маршрутам:
PUT /Questions/{id} to update question
PUT /Questions/{id}/answers/{fk} to update answers individually
Так что я создал удаленный метод, чтобы сделать это, но я не могу понять, какой метод ответов Я могу использовать их для их обновления один за другим:
Question.putWithDeps = function(question, cb) {
// Update Question
Question.upsert(question, function(err, model) {
// What code am I supposed to put here to update question.answers ???
}
};
Question.remoteMethod(
'putWithDeps',
{
http: {path: '/withDeps', verb: 'put'},
accepts: {arg: 'instance', type: 'object'},
returns: {root: true, type: 'object' }
}
);
Я все ли ошибаюсь? Спасибо заранее.
Что это вы пытаетесь достичь? Обновление сразу нескольких ответов с одинаковым значением? Или обновить много ответов, все с разными значениями все сразу? Почему бы не обновить их по одному, как API дает вам «из коробки»? Вы видели это: https://docs.strongloop.com/display/LB/PersistedModel+REST+API#PersistedModelRESTAPI-Updatematchingmodelinstances? – Jack
Я хочу обновить их один за другим, поскольку они имеют разные значения, конечно. То, что мне интересно, это правильный способ сделать это: - мне нужно использовать методы модели ответа - мне нужно использовать модель экземпляра Question.answers Ссылка, которую вы указали, касается маршрутов, когда я пытаясь сделать это программно, я никогда не думал, что может быть хорошей практикой использовать маршруты в методах loopback remote ... не так ли? – Airzebeth