Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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
Ruby on rails 处理与backbone.js的关系_Ruby On Rails_Backbone.js - Fatal编程技术网

Ruby on rails 处理与backbone.js的关系

Ruby on rails 处理与backbone.js的关系,ruby-on-rails,backbone.js,Ruby On Rails,Backbone.js,我对backbone.js有点陌生,我正在努力获取一个具有归属关系的集合 我想获取一个用户列表(users/GET),并且我想显示所有用户,但不包括一个属于关联的用户 例如,显示用户的公司名称。有人知道解决办法吗 我正在将RubyonRails3与CouchDB一起使用 用户控制器 主干集 主干模型 我想这样显示公司名称 %script{:id => "user-resource-template", :type => "text/template"} %td= check_bo

我对backbone.js有点陌生,我正在努力获取一个具有归属关系的集合

我想获取一个用户列表(users/GET),并且我想显示所有用户,但不包括一个属于关联的用户

例如,显示用户的公司名称。有人知道解决办法吗

我正在将RubyonRails3与CouchDB一起使用

用户控制器 主干集 主干模型 我想这样显示公司名称

%script{:id => "user-resource-template", :type => "text/template"}
  %td= check_box_tag "select", 1, false, :class => "checkbox", "data-id" => raw("<%= _id %>")
  %td <%= name %>
  %td <%= email %>
  %td <%= company.name %>
%script{:id=>“用户资源模板”,:type=>“文本/模板”}
%td=复选框\标记“选择”,1,false,:class=>“复选框”,“数据id”=>raw(“”)
%运输署
%运输署
%运输署

Backbone.js似乎不支持关系,因为在文档中没有提到它们

尽管如此,还是有一些主干插件增加了对关系的支持,比如or。我还没有测试过它们,但它们看起来相当活跃

更新

要延迟加载集合并防止每个关系一次提取,请参阅中的
fetchRelated
方法:

从服务器中获取模型中引用的模型 属性,但尚未找到/创建。这是可以使用的 特别适用于延迟加载场景

默认情况下,将为每个附加模型触发单独的请求 要从服务器获取的。但是,如果您的服务器/API 支持它,您可以通过以下方式在一个请求中获取模型集: 为调用fetchRelated的关系指定collectionType。 collectionType应具有重写的 允许它构造url的url(模型)方法 用于一系列模型。请参见本文顶部的示例 或者举个例子


那么,什么工作不正常呢?好的,“属于”关系不工作,这当然是逻辑,因为模型没有任何关系。因此,我不知道如何打印company.name是的,这看起来不错,但这意味着我必须对集合中的每一行进行请求。这意味着在一个普通的用户索引操作中有20个请求。更新了我的答案,这就是你想要的吗?谢谢。这确实是正确的答案。我会用另一种方式,因为服务器的一些原因,但这是正确的答案。谢谢
class UserCollection extends Backbone.Collection

  url: ->
    app.routes.users_url

  model: User
class User extends Backbone.Model

  idAttribute: '_id'

  defaults: {
    "email": null
    "mobile": null
    "loc": null
  }

  url: ->
    app.routes.users_url + '/' + (@id || '')
%script{:id => "user-resource-template", :type => "text/template"}
  %td= check_box_tag "select", 1, false, :class => "checkbox", "data-id" => raw("<%= _id %>")
  %td <%= name %>
  %td <%= email %>
  %td <%= company.name %>