Backbone.js 主干关系FetchRelated不获取任何内容

Backbone.js 主干关系FetchRelated不获取任何内容,backbone.js,backbone-relational,Backbone.js,Backbone Relational,试图整合一个backone解决方案来清理混乱的javascript,最终将是一项痛苦的工作。我肯定做错了什么,但找不到任何解决办法。 该数据包含许多具有嵌套模型CarsType的车库,这些模型CarsType具有以下属性name、description。 每个车型在每个车库中使用一次,但在许多车库中都可以找到。 carType按车库进行任意排序 因此,关系表car_type/garage name pack是这样定义的 |id |车库| id |车型| id |位置| 每个类型都分配给许多机械师

试图整合一个backone解决方案来清理混乱的javascript,最终将是一项痛苦的工作。我肯定做错了什么,但找不到任何解决办法。 该数据包含许多具有嵌套模型CarsType的车库,这些模型CarsType具有以下属性name、description。 每个车型在每个车库中使用一次,但在许多车库中都可以找到。 carType按车库进行任意排序 因此,关系表car_type/garage name pack是这样定义的 |id |车库| id |车型| id |位置|

每个类型都分配给许多机械师。每个机械师都可以在许多车库工作。 因此,第三个嵌套级别是关系表 |机修工证|包装证||

后端是rails 3.1,它可以输出Json

Garage = Backbone.RelationalModel.extend({
    relations: [
        {
            type: Backbone.HasMany, 
            key: 'Packs',
            relatedModel: 'pack',
            collectionType: 'Packs',
            reverseRelation: {
              key: 'garage',
                includeInJSON: 'id' 
            }
        }
    ],

    initialize: function(attributes) {
        this.fetchRelated("packs");
      },

    url : function() {
      var base = 'garages';
      if (this.isNew()) return base;
      return base + (base.charAt(base.length - 1) == '/' ? '' : '/') + this.id;
    }
///... more method ...

});
packs集合在另一个文件中定义

Packs= Backbone.Collection.extend({
    model: Pack, 
    url: '/packs/list/:garage_id'
});
模型已正确加载,但fetchRelated不会提取,也不会抛出任何错误。Firebug中的断点表明toFetch始终未定义

fetchRelated: function( key, options ) {
  options || ( options = {} );
  var rel = this.getRelation( key ),
  keyContents = rel && rel.keyContents,
  toFetch = keyContents && _.select( _.isArray( keyContents ) ? keyContents : [ keyContents ], function( item ) {
  var id = _.isString( item ) || _.isNumber( item ) ? item : item[      rel.relatedModel.prototype.idAttribute ];
  return id && !Backbone.Relational.store.find( rel.relatedModel, id );
  }, this );
  if ( toFetch && toFetch.length ) { 
......
我应该如何调用fetchRelated

第二个问题: 请求车库时,rails会发送嵌套模型的完整树。有没有办法从最初的json答案填充backones嵌套模型?并且能够用自己的视图操纵每个嵌套模型

  initialize: function(attributes) {
    this.fetchRelated("Packs");
  }
此外,相关模型“pack”和与您的收藏:pack关联的模型之间似乎存在不一致


如果仍然不起作用,您是否尝试过为密钥指定一个与collectionType不同的名称?

fetchRelated不会根据您的建议向服务器发出任何请求。但事实上,由于父json完整树结构的结构,我可以访问集合。还有其他建议吗?