长期Rails Dev,Backbone Noob。
在我的rails模型中,一个项目有很多任务,一个任务属于一个项目。标准的东西。
尝试在集合中获取项目的任务 json。
ExampleApp.Collections.Tasks = Backbone.Collection.extend({
url: '/projects/<dynamic_id>/tasks',
model: ExampleApp.Models.Task
});
到目前为止,我看到的每个示例都将 url 引用为/tasks。Id 喜欢将项目 ID 传递给集合以获取该项目任务。
我检查了骨干关系,但不确定最好的解决方案是什么。
干杯
我强烈建议使用Backbone-Relations,而不是自己破解关系。从个人经验来看使用骨干关系的原因:
- 创建向前和向后关系,以便您可以获取与项目或任务所属的项目相关的所有任务
- 易于序列化,并自动脱落。也就是说,你给它一个JSON,它就会构建出所有的模型及其关系。非常方便。
- 您的模型保持独立定义,可以使用标准主干内容进行保存/获取,而无需任何额外的工作。
- 它还可以与各种骨干扩展(如木偶和ioBind/ioSync)很好地配合使用。
一种方法是将 url 定义为一个函数,并在 fetch() 之前设置project_id
ExampleApp.Collections.Tasks = Backbone.Collection.extend({
model: ExampleApp.Models.Task
url: function() {
return 'projects/'+this.project_id+'/tasks';
},
setProjectId(project_id) {
this.project_id = project_id;
this.fetch();
}
});