Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 主干所属的有很多_Javascript_Backbone.js_Ruby On Rails 3.2_Backbone Relational - Fatal编程技术网

Javascript 主干所属的有很多

Javascript 主干所属的有很多,javascript,backbone.js,ruby-on-rails-3.2,backbone-relational,Javascript,Backbone.js,Ruby On Rails 3.2,Backbone Relational,长期Rails开发,主干Noob 在我的rails模型中,一个项目有许多任务,而一个任务属于一个项目。。标准的东西 试图在集合中获取项目的任务json ExampleApp.Collections.Tasks = Backbone.Collection.extend({ url: '/projects/<dynamic_id>/tasks', model: ExampleApp.Models.Task }); ExampleApp.Collections.Tasks=Bac

长期Rails开发,主干Noob

在我的rails模型中,一个项目有许多任务,而一个任务属于一个项目。。标准的东西

试图在集合中获取项目的任务json

ExampleApp.Collections.Tasks = Backbone.Collection.extend({
  url: '/projects/<dynamic_id>/tasks',
  model: ExampleApp.Models.Task
});
ExampleApp.Collections.Tasks=Backbone.Collection.extend({
url:“/projects//tasks”,
模型:ExampleApp.Models.Task
});
到目前为止,我看到的每个示例都将url引用为/tasks。我想向集合传递一个项目Id,以获取该项目的任务

我查过了,但不确定最好的解决方案是什么

Cheers

一种方法是将url定义为函数,并在获取()之前设置项目id


我强烈建议您使用关系骨干网,而不是自己破坏关系。根据个人经验使用关系型主干的原因:

  • 创建向前和向后关系,以便可以获取与项目或任务所属项目相关的所有任务
  • 易于序列化和自动反序列化。也就是说,您给它一个JSON,它构建了所有模型及其关系。非常方便
  • 您的模型仍然是独立定义的,并且可以使用标准主干来保存/获取,而无需任何额外工作
  • 它还可以很好地与各种主干扩展(如和)配合使用
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();
    }
});