如http://guides.rubyonrails.org/association_basics.html#the-has-many-through-association
所述,我有相同的HABTM(有很多,属于很多)在余烬数据中,如何定义医生,预约和患者之间的关系?
在Rails中,很容易通过很多通过。或者,是否需要在Ember中进行HABTM关联,因为它正在从/向API提取/发送数据?
不幸的是,http://emberjs.com/guides/models/defining-models/#toc_many-to-many仅显示与TWO模型的多对多关联。
答案 0 :(得分:1)
嗯,至少你需要在预约模式上添加几个属于自己的关系:
App.Appointment = DS.Model.extend({
...
physician: DS.belongsTo('physician'),
patient: DS.belongsTo('patient'),
...
});
因此,只要保存约会,其子关系就会随之保存。我认为这就是你想要的,因为这就是你在发布到Rails指南的链接中如何构建数据库。
其余部分在很大程度上取决于您的应用程序的结构,尤其是您的服务器的JSON API。例如,如果你有一个模型physician
,你可能会做这样的事情:
var query = { physician: physician.get('id') };
this.get('store').findQuery('appointment', query).then(function (results) {
...
});
如果您想找到所有医生的患者,您可以简单地返回一系列属于所发现的预约的独特患者。这种方法非常简单易懂,但它并没有充分利用Ember Data。
或者,您可以尝试在您的医生和患者模型上定义多人关系:appointments: DS.hasMany('appointment')
,这有一些优势,但也需要更好的Ember数据知识。