У меня есть связь между клиентом и бюджетом следующим образом:
//Client.js
module.exports = {
primaryKey: 'id',
attributes: {
id: {
type: 'number',
unique: true,
autoIncrement: true
},
name: {
type: 'string'
},
phone: {
type: 'string',
unique: true
},
email: {
type: 'string',
unique: true
},
budgets: {
collection: 'budget',
via: 'client'
},
}
};
// Budget.js
module.exports = {
primaryKey: 'id',
attributes: {
id: {
type: 'number',
unique: true,
autoIncrement: true
},
client: {
model: 'client'
},
budgetItems: {
type: 'json'
}
}
};
Итак, POST работает для обеих сущностей, поэтому я могу создать их обоих, но:
GET /budget/1
возвращает бюджет и идентификатор связанного клиента.
GET /budget/1/client
возвращает идентификатор клиента без заполнения (как я видел в документации он должен быть заполнен).
GET /client/1
возвращает атрибуты клиента, а поле, связанное с бюджетами, отсутствует.
GET /client/1/budgets
возвращает 404 НЕ НАЙДЕНО
Я подписан на это и это официальная документация
Так чего я мог упустить?
Это просто создание ассоциаций в одном направлении, и я сравнил с официальной документацией и примерами третьих сторон и моим кодомвыглядит хорошо.
Заранее спасибо!
Обновление:
Я все еще ищу проблемы, и если я запускаю паруса с опцией --silly
, это показываетдоступен следующий маршрут:
Маршрут привязкиe :: get / client /: parentid / budgetts ПОЛИТИКА: локализация
Связывающий маршрут :: get / client /: parentid / бюджеты POLICY: isauth
Связующий маршрут :: get / client /: parentid / budgetts BLUEPRINT: заполнить
, но если я пытаюсь получить доступ, возвращает 404 Not Found и консоль показывает следующую ошибку, выданную populate.js из основного кода Sails:
verbo: In populate
blueprint action: у указанной родительской записи (1) нет budgets
.
Update2:
Отладка с помощью консоли парусов, которую я виделАссоциация сформирована правильно.С учетом Client.findOne({id: 1}).populate('budgets').then((client)=>{console.log(client)})
вывести клиентские атрибуты и связанные с ними Бюджеты, но при этом вернуть 404 Не найдено, когда: GET /client/1/budgets