灰烬版本:3.23
余烬数据:3.23
links
我想通过向资源关系中的对象中提供的 URL 发出请求来修补关系:
{
"type": "appointments",
"id": "1",
"attributes": {},
"relationships": {
"status": {
"links": {
"self": "/api/appointments/1/relationships/status",
"related": "/api/appointments/1/status"
},
"data": {
"type": "statuses",
"id": "1"
}
}
}
}
鉴于上述情况,我想发出PATCH /api/appointments/1/relationships/status
请求。
// model/appointment.js
import Model, { attr, belongsTo, hasMany } from '@ember-data/model';
export default class AppointmentModel extends Model {
@belongsTo('status') status;
};
// model/status.js
import Model, { attr, hasMany } from '@ember-data/model';
export default class StatusModel extends Model {
@hasMany('appointment') appointments;
@attr('string') name;
}
我想做的是:
const appointment = this.store.findRecord('appointment', id);
appointment.status = newStatus;
return appointment.get('status').save();
然而,上面返回一个save() is not a function
关于状态对象的错误(状态对象是一个 ember 代理对象)。
我知道我可以做到:
const status = this.store.peekRecord('status', appointment.get('status.id'));
return status.save();
但是不,这不是我想要的要求。这将向/api/statuses/1
没有约会上下文的主要资源发出请求。
我也知道我可以保存约会并获取关系更新,但这会使links
我设置的完全无用。我希望能够请求我为关系设置的链接。
本质上,我希望能够遵循 JSON:API 规范的这一部分:更新关系。
如何save()
向使用关系链接的关系发出请求?