Для экспертов, знакомых с парусами.js: у меня есть модель клиентов, и для простоты скажем
/**
* Customers.js
*/
module.exports = {
attributes: {
firstName: { type: 'string' },
lastName: { type: 'string' }
}
};
ВАЖНО: существует также модель CustomerHistory, как показано ниже. Всякий раз, когда клиент создается или обновляется, соответствующая запись CustomerHistory также должна быть вставлена/создана.
/**
* CustomerHistory.js
*/
module.exports = {
attributes: {
customer: { model: 'customer' },
firstName: { type: 'string' },
lastName: { type: 'string' },
modifiedAt: { type: 'datetime'}
}
};
ВАРИАНТЫ в Sails.js:
Переопределить или создать новые действия Sails Blueprint (назовем их CreateWithHistory и UpdateWithHistory), которые всегда вставляются в CustomerHistory после успешного сохранения в Customer. Если это предлагаемое решение, поможет пример кода.
Создайте настраиваемые действия контроллера (назовем их CreateWithHistory и UpdateWithHistory), которые всегда вставляются в CustomerHistory при успешном сохранении в Customer. Если это предлагаемое решение, пример кода поможет связать 2 Model.create и Model.update с действиями Model.create.
Создайте пользовательское действие «Модель клиентов» для неявного сохранения в журнале при создании или обновлении. Как это сделать?
afterCreate
/afterUpdate
. В 1-м и 2-м методах есть вероятность, что какой-то другой разработчик может использовать метод по умолчанию.create
или.update
, и тогда вCustomerHistory
не будет соответствующего действия. 3-й случай обрабатывает эту ситуацию. - person khushalbokadey   schedule 10.01.2018